Кажется, я помню (возможно, неправильно), что DLinq предлагал автоматические ассоциации. Кажется, я не могу найти, как включить или выполнить это в EF.Существуют ли автоматические ассоциации в Entity Framework?
Пример:
public partial class Person
{
public int Id { get; set; }
public string Name { get; set; }
public virtual Clan Clan { get; set; }
}
public partial class Clan
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Person> People { get; set; }
}
Если бы это были мои сущности, то я хотел бы, чтобы выполнить действие, как это:
var p = new Person() { Name = "Tom" };
var c = new Clan() { Name = "SomeClan" };
p.Clan = c;
ASSERT(c.People.First() == p)
или попеременно
var p = new Person() { Name = "Tom" };
var c = new Clan() { Name = "SomeClan" };
c.People.Add(p);
ASSERT(p.Clan == c)
Кроме того, я должен использовали метод c.People.Add
, он должен был проверить, есть ли p.Clan
уже ссылается на другой клан, и если это так, удаляет его из коллекции людей клана.
В DLINQ я полагал, что они использовали EntitySet и EntityRef для этого. Существует ли эквивалент в Entity Framework?
Большое спасибо!
Это то, чего я боялся, но хорошо знать, что Fixup происходит на Добавить. Что касается DLINQ, я полностью согласен с тем, что использование класса «POCO» не будет иметь ничего. Однако, если вы использовали класс, сгенерированный диаграммой модели, он использовал бы «EntitySet» и «EntityRef » вместо ICollection и Clan. Таким образом, за счет отсутствия класса POCO, я думаю, что эти два класса «прокси» были там, где произошло исправление. Но, несмотря на это, ваш ответ поражает гвоздь по голове тем, что мне нужно делать. СПАСИБО! –
Veldaeven