Entity Framework Core-约定
💡
原文中文,约5500字,阅读约需13分钟。
📝
内容提要
本文介绍EF Core默认约定规则,包括表名称、列名称、表关系、主键和外键等的创建。同时,展示了如何根据领域类定义的属性类创建数据库表中对应的列,以及C#数据类型和SQL Server数据库数据类型的映射关系。介绍了EF Core如何处理一对多、一对一和多对多关系,并提供了不同的契约方式来实现。
🎯
关键要点
-
EF Core默认约定规则基于领域类和DbContext类创建数据库Schema,包括表名称、列名称、表关系、主键和外键。
-
通过示例展示了如何创建Employee和Department领域类及其对应的DbContext。
-
EF Core根据DbSet<T>属性名称创建数据库表,未定义的DbSet也会根据领域类的引用自动创建表。
-
EF Core根据领域类的属性创建数据库表中的列,列名称与属性名称一致。
-
C#数据类型与SQL Server数据类型之间存在映射关系,例如int对应int,string对应nvarchar(Max)。
-
可空列适用于所有引用数据类型,非空列则为主键和基本数据类型创建。
-
EF Core根据Id属性或包含id文本的属性创建主键。
-
领域类的导航属性会创建外键,示例中Employee表创建DepartmentId外键,表示一对多关系。
-
SQL Server数据库表关系有一对多、一对一和多对多三种类型,EF Core提供不同的契约方式处理这些关系。
-
一对多关系可以通过引用导航属性、集合导航属性或同时使用两者来实现。
-
一对一关系通过在两个实体类中添加引用导航属性来实现。
-
多对多关系通过在两个实体类中创建集合导航属性,并在数据库中添加连接表来实现。
➡️