Должен ли я включать Entity Framework в мою библиотеку классов или непосредственно в приложение?
================================================================================================

 Возможно, вы столкнулись с таким типом вопроса, но в моем случае это немного другой сценарий, и я не могу найти приемлемый ответ. (Возможно, он уже существовал, но я не смог его найти). 

 Я работаю над бизнес-приложением, которое имеет всю функциональность, разбитую на несколько библиотек классов. Я использую Entity Framework, и я не уверен, что это подходящее место для его включения? В моем случае у меня есть эти библиотеки: 

* Project.Library.Core
* Project.Library.Models (Содержит модель данных объекта и сущности).
* Project.Library.Auth (содержит классы, связанные с проверкой подлинности и управления пользователями).
* и аналогичные классы, которые часто используют сущности и контекст db.

 Чтобы выполнить эту работу, я должен установить Entity Framework в каждую библиотеку отдельно. В конечном итоге они будут включены в ряд веб-приложений ASP.NET MVC. Я бы установил Entity Framework прямо в веб-приложения, но это приложение будет иметь мобильные приложения в будущем вместе с возможным окном магазина. В этом случае я могу просто настроить ASP.NET Web API и использовать существующие библиотеки классов для генерации необходимых данных. Это единственный фактор, который удерживает меня от интеграции Entity Framework непосредственно в веб-приложения. 

 Так каково ваше мнение по этому поводу? Включать Entity Framework в каждую библиотеку отдельно (требуется для правильной работы) или просто включать в веб-приложение, а затем следовать тому же подходу для веб-API? 

 Спасибо. 

 Вам нужно только «установить» EntityFramework в одно место: **Project.Library.Models** . Предполагая, что стандартными кодовыми объектами являются ваши DTO, вам не понадобится прямая ссылка нигде, пока вы завершаете объект контекста уровнем доступа к данным. 

 Добавление ссылки на эту сборку приведет к включению требуемых DLL-файлов в ваши приложения, веб-сайты и т. Д. Обратите внимание, что если вы используете EntityFramework.SqlServer, переходная зависимость не будет обнаружена Visual Studio, поэтому вам нужно что-то сделать как: 

```
class Include
{
    private Include() { }
    private SqlProviderServices IncludeSql;
}

```
  Где-то в проекте моделей, чтобы DLL также копировалась.