实体框架4,定义关系
当使用POCO类以1对多关系定义实体框架4中的关系时,为什么必须在子级别定义关系。 例如说我们有一个有很多产品的订单。 产品映射文件中的关系如下所示: -
Relationship(e => e.Order)
.FromProperty(m => m.Product)
.HasConstraint((e, m) => e.Id == m.Id);
在n-hibernate中,它在父级别的映射文件中定义(在这种情况下为Order)。 在父级定义的关系提供了更大的灵活性和重用性。
有没有一种方法可以在父级而不是EF4中完成。
在EF4 CTP2中,它们具有反转特性。 他们在本ADO.NET团队博客文章中提到。
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 = children将和child.Parents.Add(parent)一样工作。
我还没有看到一种完全像NHibernate的方式,你可以直接将属性元数据应用到父类。 根据我与POCO“简单的旧CLR对象”合作的经验,他们与ORM框架是分开的。 这些关系由EF中的ObjectContext定义,并从此处进行管理。
链接地址: http://www.djcxy.com/p/60265.html