Fluent API 配置

时间:2022-07-08 15:01:47

EF里实体关系配置的方法,有两种:

  1. Data Annotation方式配置
  2. 也可以 Fluent API 方式配置

Fluent API 配置的方法

EF里的实体关系 Fluent API 配置分为Has和With系列的方法:

  • Optional 可选的
  • Required 必须的
  • Many 多个

【举例】:

A.HasRequired(a => a.B).WithOptional(b => b.A);

这里的a=>a.B是lambda表示写法,就是找到a类里的导航属性B(习惯问题:命名a不固定,可以随意,q=>q.B也是可以的;但是B是a类的属性,故习惯用小写a大写B)。

上面一句配置意思就是a类包含一个不为null的实例B类;b类包含一个实例A类,也可以不包含A类。最标准的一对一配置。

Has方法:

  • HasOptional:前者包含后者一个实例或者为null
  • HasRequired:前者(A)包含后者(B)一个不为null的实例
  • HasMany:前者包含后者实例的集合

With方法:

  • WithOptional:后者(B)可以包含前者(A)一个实例或者null
  • WithRequired:后者包含前者一个不为null的实例
  • WithMany:后者包含前者实例的集合