Я использую EntityFramework POCO + прокси + ленивую загрузку в своем проекте. Сегодня я был очень удивлен, увидев, что связанная с классом Transaction
коллекция Rows
материализована в HashSet
(вместо EntityCollection
). Мне нужно EntityCollection
для отслеживания изменений в коллекции.
public class Transaction
{
public virtual ICollection<TransactionRow> Rows { get; set; }
}
Однако другие классы сущностей имеют связанную коллекцию, материализованную в EntityCollection
.
Я загружаю Transaction
через ObjectQuery
, так что это должно быть в контексте. Также создается прокси для объекта.
Может ли кто-нибудь сказать, как Entity Framework решает, что использовать - HashSet или EntityCollection? Почему некоторые вещи становятся HashSets?