[英]Entity Framework Code First: How can I create a One-to-Many AND a One-to-One relationship between two tables?
[英]Can I define a one-to-many relationship on a complex type in Entity Framework Code First?
我有类似以下玩具示例的情况:
public class Person
{
public Guid Id { get; set; }
public string FullName { get; set; }
public ContactInfo ContactInfo { get; set; }
}
public class ContactInfo
{
public string EmailAddress { get; set; }
public IEnumerable<Address> PostalAddresses { get; set; }
}
public class Address
{
public Guid Id { get; set; }
public Guid PersonId { get; set; }
/* ... other properties ... */
}
实际情况要复杂得多,我真的希望与PostalAddresses
属性等效的对象位于ContactInfo
而不是Person
。
使用“实体框架代码优先”是否可能?
编辑
基本上,我希望以上内容被序列化为以下表结构:
桌子:人
表:地址
所以问题是我需要让IEnumerable<Address>
集合位于ContactInfo
复杂类型上,而不是根类型Person
。 当我保存一个Person
对象时,没有Address
行被添加到数据库中。
您的问题似乎很清楚。
我不是专家,但是根据如何指定复杂类型上的关系? 您尝试做的事是不可能的。 ComplexType不能具有导航属性。
我想解决方法是将ContactInfo定义为实体,而不是复杂的类型。 因此,ContactInfo将具有一个PK及其自己的表。
也许其他人知道更好的解决方案?
顺便说一句,我试图做类似的事情。 我的(简体)域:
应用
恢复
经验
训练
候选人
我最终也给了Resume一个ID,但是结果是一个冗余的Review表,该表仅由一列组成,即履历ID(等于应用程序ID)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.