请耐心等待我,因为我是C#的新手和一般的编程。
我正在尝试定义与原则类位于同一个表中的复杂类型。基本上,这是一个很好的旧用户和地址示例。
public class Customer
{
[Key]
public int customerId { get; set; }
//some attributes
public string street { get; set; }
public string city { get; set; }
public string province { get; set; }
public string country { get; set; }
public string postal { get; set; }
}
所以我尝试将地址信息分割成自己的类:
public class Customer
{
[Key]
public int customerId { get; set; }
//some attributes
public Address address { get; set; }
}
[ComplexType]
public class Address
{
public string street { get; set; }
public string city { get; set; }
public string province { get; set; }
public string country { get; set; }
public string postal { get; set; }
}
我没有编译错误,当我加载一个访问Customer模型的视图时,我在字段集错误中得到一个未知列。
“字段列表”
中的未知列'Extent1.address_street'
我是否缺少某些与EF5不同的东西?
答案 0 :(得分:3)
默认情况下,EF期望复杂类型属性的列为{complextypename_propertyname}。如果您手动创建表并以不同方式命名列,则会出现不匹配。你可以尝试相应地重命名列(即street to address_street)并尝试它是否有效。或者,您应该能够在复杂类型的属性上添加属性,以告知EF不应使用约定但不使用您指定的名称(例如,街道属性的[Column(“street”)]。