可空值的复杂类型

时间:2013-05-05 02:02:23

标签: c# 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;}
}

更具体地说,如果您没有声明和地址类型,则会得到“非可空成员的空值。成员:'地址'。”根据{{​​3}}。

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

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

2 个答案:

答案 0 :(得分:8)

看看这个问题Entity Framework 5 DbUpdateException: Null value for non-nullable member

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

答案 1 :(得分:8)

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