ADO.NET EF as DAL - PullRequest
       31

ADO.NET EF as DAL

0 голосов
/ 22 августа 2010

Я разрабатываю проект с использованием многоуровневой архитектуры. У меня есть DAL, в котором я использую Entity Framework, уровень бизнес-логики, который использует объекты, возвращенные DAL, и уровень приложения.

Я не совсем уверен, что считаю это правильным, поэтому я просто спрошу вас, что вы думаете.

Мой DAL основан на мапперах. У меня есть типы - картографы - которые BLL использует для работы с моими данными. Эти преобразователи возвращают DTO, потому что я не хотел выставлять в мой BLL какие-либо объекты EF, поэтому их реализации не зависят от EF для работы.

Все эти мапперы выполняют CRUD-действия на одной «таблице», например:

using (var contex = new EFEntities()){
  var obj = (from x in context.Table where x.ID == param select x).SingleOrDefault;
  return Map(x.ToList());
}

Метод Map отображает объект EF в DTO, у которого есть только некоторые свойства для сопоставления значений, которые я хочу предоставить.

Есть ли более элегантный подход к этому? Я просто использую EF для облегчения доступа к моей базе данных - мне не нужно писать код ADO.NET.

Любые комментарии по этому вопросу приветствуются.

Спасибо.

1 Ответ

0 голосов
/ 22 августа 2010

У меня есть DAL, в котором я использую Entity Framework, уровень бизнес-логики, который потребляет объекты, возвращенные DAL, и уровень приложения.

Это извращение,учитывая, что вы помещаете полный слой объекта в свой DAL.EF - это намного больше, чем DAL.

уровень бизнес-логики, который использует объекты, возвращаемые DAL, и уровень приложения.

Термин, который вы можете использоватьпосмотрите, что это «анемичная объектная модель», и это не очень хороший термин.

Есть ли более элегантный подход к этому?

Не боритесьEF.если вам это не нравится, не используйте его - вокруг гораздо лучше.

...