Работаете напрямую с EntitySet? - PullRequest
0 голосов
/ 20 декабря 2010

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

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

1 Ответ

1 голос
/ 20 декабря 2010

С MSDN :

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

По сути, речь идет о CSDL - с каким «набором» сущностей сопоставляются объекты.

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

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

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

...