Когда НЕ использовать Entity Framework

.net architecture c# entity-framework

Вопрос

Я играл с EF, чтобы посмотреть, с чем он может справиться. Также во многих статьях и постах объясняются различные сценарии, в которых можно использовать EF, однако если как-то пропустить сторону «против». Теперь мой вопрос: в каких сценариях я должен держаться подальше от Entity Framework ?

Если у вас есть некоторый опыт в этой области, скажите мне, какие сценарии не подходят для EF. Расскажите мне о некоторых минусах, которые вы испытали, когда хотели, чтобы вы выбрали другую технологию.

Принятый ответ

Я также нахожусь на стадии «игры вокруг», и хотя меня беспокоило отсутствие встроенного настойчивого агностицизма, я был уверен, что будет «обходной путь».

На самом деле, это даже не обходной путь в n-уровневой архитектуре.

WCF + EF

Если я правильно прочитал статью , то не вижу проблем с сериализацией объектов по проводам (с использованием WCF), а также постоянное невежество не является проблемой.

Это потому, что я бы использовал PI в основном для юнит-тестирования.

Модульное тестирование возможно! (Я думаю)

В этой системе мы могли бы просто использовать фиктивную службу (заключив вызов службы в ДРУГОЙ класс, основанный на интерфейсе, который может быть произведен, например, на фабрике). Это будет проверять НАШ код презентатора (нет необходимости в модульном тестировании EF / DAL - это работа Microsoft!) Конечно, интеграционные тесты все равно потребуются для достижения полной уверенности.

Если вы хотите записать в отдельную базу данных, это будет сделано на уровне DAL, что легко достигается с помощью файла конфигурации.

Моя стоимость Таппенс

Мое мнение - составьте свое собственное мнение об EF и не отчаивайтесь от всей гибели и мрака в отношении того, что делает раунды. Я предполагаю, что это будет какое-то время, и MS устранит неисправности в следующем году или около того. По словам Дэна Симмонса, PI определенно приходит.

РЕДАКТИРОВАТЬ : Я только что понял, что я прыгнул пистолет, и, как хороший политик, на самом деле не ответил на вопрос, который был задан. К сожалению. Но я оставлю это на всякий случай, если кто-то еще найдет это полезным.


Популярные ответы

В « Голосе о недоверии» перечислено несколько ошибок и / или недостающих элементов функциональности в глазах тех, кто считает, что знает, какие функции и их реализации подходят для сред ORM / Datamapper.

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

Вне этой проблемы и в центре вашего вопроса - вам нужно следить за Sql, который генерируется, чтобы вы могли вносить изменения, прежде чем проблема производительности вступит в производство. Даже если вы используете procs в бэкэнде, я все равно буду искать сценарии, в которых вы, возможно, слишком много раз попадете в базу данных, а затем переработать сопоставления или соответственно выбрать сценарии.



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему