Можно ли настроить интерфейсную библиотеку для DAL с использованием Entity Framework? - PullRequest
1 голос
/ 15 сентября 2009

У меня есть библиотека моделей (пространство имен Test.App.Model.EF) с реализацией Entity Framework. Здесь есть все сущности, предоставленные мне в конструкторе EF, которые я хочу использовать. В этой Model.EF реализации у меня есть несколько классов репозитория. Я хочу создать интерфейсы для этих классов и поместить их в отдельную библиотеку интерфейсов (Test.App.Model.Interface). Так что я делаю так, очевидно, что библиотека реализации нуждается в ссылке на интерфейсы. НО, я заметил, что интерфейсы должны знать об объектах в EF-конструкторе (так как я хочу использовать их повторно). Я не могу создать ссылку из библиотеки интерфейса на реализацию ef, потому что тогда у меня будет циклическая ссылка.

Итак, когда я пишу это, я прихожу к выводу, что мне, вероятно, понадобится Test.App.Entities.EF, у которого есть Entity Framework, «созданный» сущностями. Таким образом, моя библиотека интерфейсов может ссылаться без необходимости знать Model.EF.

Это похоже на путь?

1 Ответ

1 голос
/ 17 сентября 2009

Хорошо, после долгих попыток с этим я нашел термин, который описывает ситуацию. То, что я ищу здесь, называется "Невежество в постоянстве" . Это то, что сделало бы то, что я описал в моей теме. Что ж, Entity Framework, который мы используем (не 4.0), пока не поддерживает это (если вы не вернетесь домой, как сделано здесь ).

С учетом вышесказанного, EF 4.0 будет иметь эту функцию, но, насколько я понимаю, она связана с .NET 4.0 (в первую очередь потому, что она называется EF 4.0) и в ближайшее время не появится на наших производственных серверах. Поскольку мы решили использовать эту технологию, наша абстракция репозитория к интерфейсам будет отложена до тех пор, пока обновление до 4.0 не станет жизнеспособным вариантом.

Пусть это будет предостережением для тех, кто ищет ту же информацию. Пожалуйста, дайте мне знать, если это звучит неправильно (потому что я хотел бы, чтобы это произошло раньше, чем позже, но я не хочу, чтобы моя команда перепрыгивала через обручи, когда более поздняя реализация исправит проблему). Спасибо всем!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...