В MS MVC классы Poco должны быть определены в пространстве имен Models, но вне класса репозитория? - PullRequest
1 голос
/ 02 декабря 2009

Я думаю, что я очень близок к правильной сборке репозитория 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, которые содержат ссылки на сущности? Внутри класса контроллера (вложенный класс)?

Ответы [ 2 ]

2 голосов
/ 02 декабря 2009

В качестве предложений книги, попробуйте Эрик Эван * Управляемый доменом проект и, возможно, Рефакторинг Мартина Фаулера .

1 голос
/ 14 июля 2010

Также попробуйте Быстро управляемый доменом производства InfoQ. Скачать бесплатно или 30 долларов в печати. ​​

"Домен-управляемый дизайн быстро был подготовлено InfoQ.com, обобщено в основном Авель Аврам и Флойд Маринеску в качестве главного редактора. Специальный спасибо Эрику Эвансу за поддержку и Владимир Гитлевич и Дэн Берг Джонссон за их подробные обзоры. Цель этой книги - получить введение в домен-управляемый Создайте как можно больше рук, чтобы помочь ему стать мейнстримом ". - InfoQ

...