0. 前言 在<C# 数据操作系列 - 5. EF Core 入门>篇中,我们简单的通过两个类演示了一下EF增删改查等功能.细心的小伙伴可能看了生成的DDL SQL 语句,在里面发现了些端倪.没看的小伙伴也不急,这就贴出来. public class ModelA { public int Id { get; set; } public string Name { get; set; } public List<ModelB> ModelBs { get; } = new List…
0.前言 到目前为止,我们看了一下如何声明EF Core的初步使用,也整体的看了下EF Core的映射关系配置以及导航属性的配置. 这一篇,我带大家分享一下,我在工作中需要的EF Core的用法. 1. 初始化 在实际开发中,一般都是先设计好数据表再进行开发,所以很少用到EF Core的数据迁移功能.所以EF Core的初始化,一般也指的是EF Core上下文初始化. 1.1 连接字符串 我们通过前面的文章知道,EF Core在上下文初始化的时候,都需要一个链接字符串.如果在不考虑后续变更或者上…
在上一篇,大概介绍了Entity Framework Core关于关系映射的逻辑.在上一篇中留下了EF的外键映射没有说,也就是一对一,一对多,多对一,多对多的关系等.这一篇将为大家细细分析一下,如何设置这些映射. 1. 实体之间的关系 从数据表来考虑,两个表之前的关系有一对一,一对多(多对一)和多对多的关系. 其中一对一,指的是表A有一条记录对应着表B最多有一条记录与之对应.反过来也一样,表A也最多有一条记录与表B的某一条记录对应.具体在数据表上表现为,A表和B表各有一个外键指向对方. 一对多和…
0.前言 <EF Core>实际上已经可以告一段落了,但是感觉还有一点点意犹未尽.所以决定分享一下,个人在实际开发中使用EF Core的一些经验和使用的扩展包. 1. EF Core的异步操作 正如这小节题目所言,EF Core是支持异步操作的,但实际可用集中在SaveChanges和异步查询这两个方法上. 具体方法声明如下: public virtual System.Threading.Tasks.Task<int> SaveChangesAsync (System.Threa…
0.前言 上一章简单介绍了一下ORM框架,并手写了一个类似ORM的工具类.这一章将介绍一个在C#世界里大名鼎鼎的ORM框架--Entity Framework的Core版. Entity Framework 非Core版目前已经更新到了6代,这是一款经过检验的ORM框架.在这里简单介绍一下Entity Framework(简称EF,额,别拿这个当关键字搜索,要不然你会被忽悠到一个英语培训机构的)的优点. C#的设计理念是约定优于配置,意思就是通过一定程度的规范性格式化的写法来避免使用配置文件或者…
一.概述 EF实体关系定义了两个实体互相关联起来(主体实体和依赖实体的关系,对应数据库中主表和子表关系). 在关系型数据库中,这种表示是通过外键约束来体现.本篇主要讲一对多的关系.先了解下描述关系的术语. (1) 依赖实体: 这是包含外键属性的实体(子表).有时称为 child . (2) 主体实体: 这是包含主/备用键属性的实体(主表). 有时称为 parent. (3) 外键:依赖实体(子表)中的属性,用于存储主表的主键属性的值. (4) 主键: 唯一标识的主体实体(主表)的属性. 这可能是…
0. 前言 上一篇<C# 数据操作系列 - 11 NHibernate 配置和结构介绍> 介绍了Nhibernate里的配置内容.这一篇将带领大家了解一下如何使用NHIbernate.之前提到NHibernate继承了Hibernate的一些传统:使用XML文件进行配置,这一点也是备受争议.不过,有社区爱好者开发了一个名为<Fluent NHibernate>的项目,用来支持NHibernate的流式配置.当然,NHibernate本身也提供了NHibernate.Mapping.…
0. 前言 继上一篇,以及上上篇,我们对SqlSugar有了一个大概的认识,但是这并不完美,因为那些都是理论知识,无法描述我们工程开发中实际情况.而这一篇,将带领小伙伴们一起试着写一个能在工程中使用的模板类. 1. 创建一个Client SqlSugar在操作的时候需要一个Client,用来管理数据库连接,并操作数据库.所以我们写一个DbContext用来创建Client: public class DefaultContext { public SqlSugarClient Client {…
0. 前言 前一篇我们详细的介绍了SqlSugar的增删改查,那些已经满足我们在日常工程开发中的使用了.但是还有一点点在开发中并不常用,但是却非常有用的方法.接下来让我们一起来看看还有哪些有意思的内容. 1. 不同寻常的查询 之前介绍了针对单个表的查询,同样也是相对简单的查询模式.虽然开发完全够用,但是难免会遇到一些特殊的情况.而下面这些方法就是为了解决这些意料之外. 1.1 多表查询 SqlSugar提供了一种特殊的多表查询方案,使用IQueryable接口 .来看看是怎样操作的吧: ISug…
0. 前言 前几天FreeSql的作者向我推荐了FreeSql框架,想让我帮忙写个文章介绍一下.嗯,想不到我也能带个货了.哈哈,开个玩笑-看了下觉得设计的挺有意思的,所以就谢了这篇文章. 简单介绍一下,FreeSql 是NCC组织的沙盒级项目,是一款功能强大的 ORM 组件,支持 .NET Core..NET Framework 和 Xamarin.目前 FreeSql 支持以下数据库:MySQL.PostgreSQL.SqlServer.Oracle.Sqlite.Odbc.微软 Access…