Работаете напрямую с EntitySet?

Я пытаюсь обернуть голову вокруг всех классов, присутствующих в Entity Framework 4. Единственный, который меня (пока) смущает - это EntitySet. EntitySets никогда не упоминаются нигде в сгенерированном коде C# из моих файлов.edmx, только в файлах XML (.csdl, .msl, .ssdl).

Кажется, что ObjectSet является оболочкой для EntitySet (хотя он также представляет EntitySet как открытое свойство.) Есть ли случаи, когда я буду напрямую работать с EntitySets?

1 ответ

Из MSDN:

Логический контейнер для сущностей данного типа и его подтипов. Наборы сущностей сопоставляются с таблицами в базе данных.

По сути, речь идет о CSDL - о том, какому "набору" объектов соответствуют объекты.

Вам не нужно беспокоиться об этом - вы будете работать с ObjectSet<T>:

var orders = ctx // ObjectContext
             .Orders // ObjectSet<Order>
             .SingleOrDefault(); // Order

Для получения бонуса - по возможности используйте IObjectSet<T> чтобы облегчить модульное тестирование (внедрить фиктивное - например, статический список в памяти).

Другие вопросы по тегам