ASP.NET MVC 2.0: использование частичной классификации или наследования для базы данных / объектной модели? - PullRequest
0 голосов
/ 04 мая 2010

Я спрашиваю об этом, потому что я использую частичную классификацию, чтобы расширить мою модель БД, и при этом некоторые препятствия, с которыми я столкнулся, используя наследование, а также препятствия, с которыми я столкнулся, объявляя мою модель БД в другом классе как свойство и просто использовать его вот так, например: Public Property DBModelClass as DBModelClassType - однако, прямое частичное частичное классификация работает лучше всего, без каких-либо препятствий ... за исключением проблемы, с которой я, похоже, сталкиваюсь сейчас.

то есть я создаю новые свойства с полстраничным кодом в части «Get» описания свойств, это как виртуальные / новые свойства, о которых модель db или db не должна ничего знать, вещей, которые вы генерируете / используете, но не сохраняя их в своей базе данных, так как я уверен, что у всех вас есть это. каждый раз, когда я отправляю свой DBModel через действие, каким-то образом, один из этих свойств, раздел «Получить», запускается (вызывается), хотя я никогда не просил об этом. конечно, потому что он не готов к запуску (он не должен) ошибок, таких как нулевые ошибки, возвращаются (однако, они не будут ошибаться, если будут запускаться только тогда, когда я его попросил).

редактировать: так что это вторая часть моего вопроса, все ли свойства в модели, сгенерированные из базы данных (linq to sql) run , или вызваны состоянием модели автоматически? без просьбы сделать это?

в сторону : (я делаю modelstate.isvalid - однако, этот запуск происходит до того, как isvalid вызывается, поскольку он выдает ошибку, прежде чем я даже вижу информацию проверки). что, является ли автоматический вызов всех свойств объекта модели БД, даже если он не используется нормально? я попытался использовать bind (false) и scaffold для проблемных свойств.

и первая часть моего вопроса, как напоминание, заключается в том, должен ли я или не должен использовать частичную классификацию вместо наследования при расширении модели БД? спасибо.

1 Ответ

3 голосов
/ 04 мая 2010

Вы не должны изменять свой домен, я бы порекомендовал вам использовать View Models:

Controller -> Model -> Mapper -> View Model -> View

Определите классы View Model, которые будут отражать ваши представления, а не модель предметной области. Затем вы можете использовать AutoMapper для преобразования из тех доменных объектов, которыми ваш контроллер управляет, в модели представлений и передачи их в соответствующие представления.

Этот пост в блоге Джимми Богарда также стоит прочитать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...