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提供不同的契约方式处理这些关系。

  • 一对多关系可以通过引用导航属性、集合导航属性或同时使用两者来实现。

  • 一对一关系通过在两个实体类中添加引用导航属性来实现。

  • 多对多关系通过在两个实体类中创建集合导航属性,并在数据库中添加连接表来实现。

➡️

继续阅读