Entity Framework Fluent API用于配置域类以覆盖约定。
在实体框架6中,DbModelBuilder类充当Fluent API,我们可以使用它来配置许多不同的东西。它提供了比数据注解属性更多的配置选项。
写流利API配置,覆盖OnModelCreating
的方法DBContext
在一个上下文类。
使用Fluent API的实体映射:
使用Fluent API的属性映射:
配置列名称,类型和顺序:
为属性配置Null或NotNull列:
配置列大小:
配置并发列:
配置一对 零/一 关系:
当我们使用默认主键的时候:
当我们需要配置主键和外键的时候:
使用Fluent API配置一对一关系:
数据库中我们看不到外键,但是确实是存在一对一的关系
在EF 6中配置一对多关系
公约1,导航属性来约定:
注意引用属性是可以为空的,所以它Grade_GradeId
在Students
表中创建一个可为空的外键列。您可以Fluent API 配置可以为空的外键。
约定2,集合导航属性
公约3, 公约1和2的结合
公约4 两端完全定义的关系将创建一对多的关系
使用Fluent API配置一对多关系
大多数情况下,您不需要在实体框架中配置一对多关系,因为一对多关系约定涵盖所有组合。但是,您可以使用Fluent API来配置关系以使其可维护。
.HasRequired<grade>(s => s.CurrentGrade)
指定该Student
实体具有所需的CurrentGrade
属性。这将在DB中创建NotNull外键列。
.WithMany(g => g.Students)
指定Grade
实体类包含许多Student
实体。
.HasForeignKey<int>(s => s.CurrentGradeId);
指定Student
实体中的外键属性。
使用Fluent API配置NotNull ForeignKey:
使用Fluent API配置级联删除:
在Code-First中配置多对多关系:
DataAnnotation中的多对多
使用Fluent API配置多对多关系: