实体框架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

上一篇: Entity Framework 4, defining relationship

下一篇: NHibernate Generators