Entity Framework - связанная с ICollection материализация в HashSet - PullRequest
6 голосов
/ 02 сентября 2010

Я использую EntityFramework POCO + прокси + ленивая загрузка в моем проекте.Сегодня я был довольно удивлен, увидев, что класс Transaction имеет связанную коллекцию Rows, материализованную в HashSet (вместо EntityCollection).Мне нужно EntityCollection для отслеживания изменений в коллекции.

public class Transaction
{
    public virtual ICollection<TransactionRow> Rows { get; set; }
}

Однако другие классы сущностей имеют свою связанную коллекцию, материализованную в EntityCollection.

.1013 *, так и должно быть в контексте.Прокси для объекта также создан.

Может кто-нибудь сказать - как Entity Framework решает, что использовать - HashSet или EntityCollection?Почему некоторые вещи становятся HashSets?

1 Ответ

2 голосов
/ 03 сентября 2010

Прокси-сервер отслеживания изменений создается только при соблюдении следующих двух условий:

  • Класс POCO является открытым, незапечатанным и неабстрагированным
  • Все постоянные свойства (с геттером и сеттером) помечаются как виртуальные
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...