实体框架的数据类型是否会影响PropertyConfiguration方法的行为?

时间:2015-10-01 02:53:30

标签: c# entity-framework

假设

public int? Count { get; set; }

以下两个陈述是否相同?

Property(v => v.Count).HasColumnName("count");
Property(v => v.Count).HasColumnName("count").IsOptional();

对于复杂的数据类型是否也适用,例如:

public Foo Bar { get; set; }

Property(v => v.Prop1).HasColumnName("prop1");
Property(v => v.Prop1).HasColumnName("prop1").IsOptional();

1 个答案:

答案 0 :(得分:0)

在第一种情况下,是的,这两个语句在产生相同DDL方面是相同的。

在第二种情况下,如果Foo是复杂类型,则表示Bar是导航属性。您应该在配置中区别对待导航属性,例如:

HasRequired(x => x.Bar).WithMany().HasForeignKey(x => x.BarId)

HasOptional(x => x.Bar).WithMany().HasForeignKey(x => x.BarId)

取决于预期的关系。