当在实体框架4中使用POCO类在一对多关系中定义关系时,为什么必须在子级定义关系。例如,假设我们有一个包含多个产品的订单。产品的映射文件中的关系如下所示:
Relationship(e => e.Order)
.FromProperty(m => m.Product)
.HasConstraint((e, m) => e.Id == m.Id);在n-hibernate中,它定义在父级别的映射文件中(在本例中为Order)。在父级定义关系可以提供更大的灵活性和重用性。
有没有一种方法可以在EF4中在父级完成这项工作?
发布于 2010-01-12 14:55:18
在EF4 CTP2中,它们具有相反的属性。在此ADO.NET team blog post中提到了它们。
public ParentConfiguration()
{
Property(p => p.Id).IsIdentity();
Property(p => p.FirstName).IsRequired();
Property(p => p.LastName).IsRequired();
//Register an inverse
Relationship(p => p.Children).FromProperty(c => c.Parents);
}这意味着parent.Children =子代将与child.Parents.Add(父代)的工作方式相同。
我还没有看到一种完全像NHibernate那样的方法,可以将属性元数据直接应用到父类。在我使用POCO“普通老式CLR对象”的经验中,它们与ORM框架是分开的。这些关系由EF中的ObjectContext定义,并从那里进行管理。
https://stackoverflow.com/questions/2046487
复制相似问题