假设
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();
答案 0 :(得分:0)
在第一种情况下,是的,这两个语句在产生相同DDL方面是相同的。
在第二种情况下,如果Foo
是复杂类型,则表示Bar
是导航属性。您应该在配置中区别对待导航属性,例如:
HasRequired(x => x.Bar).WithMany().HasForeignKey(x => x.BarId)
或
HasOptional(x => x.Bar).WithMany().HasForeignKey(x => x.BarId)
取决于预期的关系。