Ответ 1
Для небольшого проекта он должен быть частью Модели. Для более крупного продукта репозиторий и связанная с ним модель могут быть в отдельной сборке.
Давайте рассмотрим структуру папок приложения ASP.NET по умолчанию, поэтому она выглядит так:
-App_data
-Content
-Controllers
HomeController.cs
-Models
AccountModels.cs
-Scripts
-Views
Мой вопрос: где лучше всего разместить файл модели данных Entity Framework (EDMX)? Это папка "Модели"? Да, мы знаем, что хорошим решением является введение нового проекта и ссылка на него на приложение MVC, но теперь забываем об этом.
Для небольшого проекта он должен быть частью Модели. Для более крупного продукта репозиторий и связанная с ним модель могут быть в отдельной сборке.
Ну, это дискуссионно, но я проголосовал бы за +1 для папки Модели.
Единственным другим кандидатом будет App_Datastrong > , но это, как правило, для файловых баз данных (например, SQL Server CE.MDF) и файлов, которые вы не хотите обслуживать IIS.
Поскольку EDMX является абстракцией базы данных, он должен войти в папку Модели.
Если проект станет больше, вы должны определенно переместить свою модель EF в другой проект. Чтобы убедиться в этом, сделайте свои контроллеры доступными к EDMX через репозиторий/интерфейсы, поэтому, когда вы переместите DAL на другой проект, вам нужно будет добавить ссылку и добавить в операторы using.
Я бы поместил EF-модель (aka физическая модель) всегда в свою собственную сборку или в "ядровую" сборку вне основного приложения MVC. То же самое относится к вашей бизнес-логике/доменной логике/доменным службам/и т.д. Отделите не веб-материал от MVC-Web-приложения.
Это поможет вам повторно использовать основную часть вашего приложения. Например, когда вам нужно предоставить его как услугу, инструмент командной строки, средство миграции и т.д.
Поскольку хранить это в своей собственной сборке так просто и занимает несколько минут, я очень рекомендую делать это для каждого крошечного приложения тоже.
Мое мнение таково, что вы должны создать