Для трехуровневой архитектуры.Я хотел бы рассмотреть возможность использования абстракции с использованием модели доменной модели и модели данных, а не прямого EF из уровня представления.
Таким образом, идея заключается в том, что у вас есть модель данных, которая имеет классы EF POCO с репозиториями, которые знают, как получить доступ к этимЗанятия по различным CRUD.
Ваша модель домена будет иметь модели, связанные с вашим клиентом (так что вы можете добавить различные коды ViewModels или проверки), это может быть веб-приложение WPF или MVC.Теперь между этими двумя существует бизнес, который общается с моделями доменов и данных.
Ваш уровень представления ничего не знает о EF / уровне данных / репозитории.Когда вы хотите представить новую платформу данных или базу данных, вам просто нужно написать новые классы репозитория и классы моделей данных (которые, вероятно, должны быть с каким-то кодом).
Это также позволяет вашему коду быть модулемтакже тестируемый.