2010-07-23 2 views
2

Я новичок в Entity Framework 4, и мне интересно, что лучший способ организовать мой уровень данных - код, который обращается к EF4?Организация слоя данных EF4?

На данный момент мой уровень данных устанавливается следующим образом:

  • класс DataStore: Содержит ссылку на EF4 ObjectContext и содержит методы для открытия, закрытия и сохраняться ObjectContext в место хранения.

  • Классы репозитория: Один класс для каждого объекта с методами создания, извлечения и удаления объектов объектов.

Есть ли лучший способ организовать эту функцию для EF4? Я искал статьи/блоги по этому вопросу, но я не нахожу много. Какие-либо предложения?

ответ

2

Я использую generic repository для Entity Framework, что делает доступ очень простым. Нет необходимости писать отдельный репозиторий для каждого объекта, просто:

MyDataContext ctx = new MyDataContext(); 
Repository<MyEntity, MyDataContext > myEntityRep = new Repository<MyEntity, MyDataContext>(ctx); 
myEntityRep.Add(new MyEntity() {//property settings}); 

Это хранилище полностью абстрагирует модель Entity, что позволяет создавать, изменять и удалять объекты.

+0

Это хороший момент. Я использую общий класс репозитория как базовый класс для своих репозиториев. Он устраняет большую часть кода сантехники, необходимого для классов репозитория. Единственный код, который мне нужен, это запросы, которые уникальны для конкретного объекта. –

+1

Хорошо, похоже, я использую разумный подход. Выбрали этот ответ из-за включенного кода. Любые другие предложения очень приветствуются. –

1

Я предпочитаю классы репозитория для каждого типа сущности (я знаю их как DataMapper). Один класс для всех запросов легко становится слишком монолитным, чтобы поддерживать его.

+0

Я думаю, что мы согласны в этом вопросе. Я использую отдельный класс Repositorey для каждого типа сущности root; то есть типы I будут выполнять запросы. +1 для ссылки на DataMapper - спасибо! –

Смежные вопросы