Entity Framework 4, определяющий отношения - PullRequest
2 голосов
/ 12 января 2010

При определении отношения в структуре сущностей 4 в отношении 1-ко-многим с использованием классов POCO, почему отношение должно быть определено на дочернем уровне. например, скажем, у нас есть заказ, который имеет много продуктов. Отношения в файле сопоставления для продукта будут выглядеть так: -

    Relationship(e => e.Order)
            .FromProperty(m => m.Product)
            .HasConstraint((e, m) => e.Id == m.Id);

В n-hibernate это определено в файле отображения на родительском уровне (в этом случае Order). определение отношений у родителя обеспечивает большую гибкость и возможность повторного использования.

Есть ли способ сделать это на родительском уровне вместо этого в EF4.

1 Ответ

1 голос
/ 12 января 2010

В 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, где вы можете применить атрибуты \ метаданные непосредственно к родительскому классу. По моему опыту работы с «простыми старыми объектами CLR» POCO они отделены от платформы ORM. Отношения определяются ObjectContext в EF и управляются оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...