Я думаю, что я очень близок к правильной сборке репозитория MVC, но просто разваливаюсь на краю. Я создал проект MVC с хранилищем и возвращаю данные успешно, но не так точно, как это относится к DDD. Скажите пожалуйста, где я не прав с точки зрения строгой сборки DDD. Я думаю, если темы слишком широки, предложение книги будет хорошо. Я надеюсь, что я достаточно конкретен в своем вопросе.
Это был один вопрос, но я разделил их для ясности: вы создаете единое пространство имен для всех классов репозитория с именем MyStore.Models? Создать класс репозитория для каждого объекта, такого как Product, в пространстве имен Models? Вы помещаете Pocos в их собственные классы в пространстве имен Models, но не являетесь частью самого класса Repository?
В настоящее время я использую Pocos, чтобы вырезать сущности из операторов Linq, возвращая их группы в оболочках IQueryable, вот так. Я предполагаю, что здесь вы бы каким-то образом удалили IQueryable и заменили его каким-либо типом отложенной загрузки? Как вы лениво загружаете, не будучи зависимым от оригинального Linq to Sql?
public IQueryable<Product> GetProducts(...) {
return (from p in db.Products
where ...
select new myProductPoco { // Cut out a Poco from Linq
ID = p.ID,
Name = p.Name,
...
});
}
Затем ссылайтесь на них в представлениях MVC в директиве страницы наследования:
System.Web.Mvc.ViewPage<IQueryable<MyStore.Models.Product>>
Однако вложенные генерики выглядят неправильно. Я предполагаю, что это требует повторного фактора. Где вы определяете классы View Model, которые содержат ссылки на сущности? Внутри класса контроллера (вложенный класс)?