EF 实体映射

时间:2024-08-31 12:07:32

1.继承自EntityTypeConfiguration

2.ToTable映射表名

3.HasKey映射主键,Property配置属性,并返回PrimitivePropertyConfiguration对象,以配置基元属性

4.基元属性:IsRequired不可为NULL,IsOptional可以为NULL,HasColumnName列名称,HasColumnOrder指定列的顺序,通常用于组合键;

5.并发字段:要指定实体中的某个属性表示并发令牌,可使用 ConcurrencyCheck 特性或 IsConcurrencyToken 方法。也可以使用IsRowVersion 方法将属性配置为数据库中的行版本。将属性设置为行版本会自动将它配置为乐观并发令牌。

6.LengthPropertyConfiguration配置长度属性:IsMaxLength,HasMaxLength,IsFixedLength,IsVariableLength;

7.StringPropertyConfiguration配置字符串型属性:HasMaxLength,IsUnicode等,继承自LengthPropertyConfiguration

关系配置:

8.HasRequired配置必需关系。

9.HasMany配置一对多关系。HasRequired 和HasOptional方法需要一个lambda表达式来指定一个导航属性,HasMany方法需要一个lambda表达式指定一个集合导航属性。然后 可以使用WithRequired, WithOptional和WithMany方法来指定反向导航属性,这些方法有不带参数的重载用来指定单向导航。 之后还可以使用HasForeignKey方法来指定外键属性.

http://blog.****.net/gentle_wolf/article/details/14004345

Json序列化时循环引用的两种解决方法:

1.关系的导航保证单向,则不会出现循环引用;

2.使用浅复制(如果需要,则使用深复制)返回需要序列化的实体(使用匿名实体也可以)。