Я использую Entity Framework 4.1 и ASP.Net MVC 3 для своего приложения. MVC обеспечивает уровень представления, промежуточная библиотека обеспечивает бизнес-логику, а Entity Framework действует как уровень данных, я полагаю?
Я мог бы разделить код Entity Framework на набор классов репозитория или их соответствующий вариант, независимо от того, что представляет собой полезный слой данных, но у меня возникли проблемы с решением проблемы проектирования, которая у меня есть.
Если существует многоуровневый подход, помогающий мне разделять проблемы, то вполне естественно, что мой выбор постоянства данных также не должен затрагивать уровень представления. Проблема в том, что, используя Entity Framework, я в основном тесно связываю свое приложение с понятием, что изменения сущностей отслеживаются и сохраняются автоматически.
Таким образом, скажем, в гипотетическом мире я нашел причину не использовать Entity Framework и хотел поменять его. Хорошо спроектированное решение должно позволить мне делать это на соответствующем уровне и не затрагивать зависимые уровни, но поскольку весь код пишется с учетом того, что уровень данных отслеживает изменения объекта, я смогу только поменять сущность Framework для чего-то, что работает аналогичным образом, например, nHibernate.
Как мне использовать Entity Framework, но мне не нужно писать мой код таким образом, чтобы предполагать, что изменения сущностей отслеживаются слоем данных?
ОБНОВЛЕНИЕ для тех, кто все еще интересуется этой проблемой в своих собственных сценариях:
Ayende Rahien написала отличную статью, снимая весь этот аргумент:
http://ayende.com/blog/4567/the-false-myth-of-encapsulating-data-access-in-the-dal