可空值的复杂类型

对于只具有可空属性的entity framework中的复杂类型,为什么对于类似下面的内容需要实例化复杂类型:

[ComplexType] public class Address { public string Address1 { get; set; } } public class Customer { [Key] public int CustomerId {get;set;} public Address Address {get;set;} } 

更具体地说,如果您没有声明和地址类型,则会得到“非可空成员的空值。成员:’地址’。” 按照这个问题 。

只要复杂类型中的所有属性都可以为空,为什么entity framework需要一个Address实例? 由于Address1是可空的,为什么它不能只假设并在行中创建表(和列Address_Address1)和null值,就像我创建了一个具有空Address1的Address实例一样?

或者是否有我可以申请实现的属性/流畅设置?

看看这个问题entity framework5 DbUpdateException:非可空成员的空值 。

即使所有属性都为null,也需要实例化复杂类型。

即使属性可以为空,包含它们的类也不是。 您可以将Address.Address1作为null ,但必须实例化Address本身。