Model与ViewModel完全相同时该怎么办?

Bil*_*ani 3 c# asp.net-mvc entity-framework entity-framework-4 asp.net-mvc-viewmodel

我想知道什么是最佳做法.我被告知总是创建ViewModels并且从不使用核心Model类将数据传递给Views.那讲得通.让我把事情分开.但是什么是Model与ViewModel完全相同.我应该重新创建另一个类还是只使用它.

我觉得我应该重新创造.只想知道专家说的话......

Ant*_*t P 5

您绝对应该创建一个单独的视图模型,即使它与您的域实体完全相同.视图模型和域实体应该是完全独立的,即您应该能够在不需要知道或关心更改的情况下更改其中一个.您的视图模型应代表您的视图,您的域实体应该......嗯...代表您的域实体.它们现在可能是相同的,但是,如果要么改变,一个中的变化不应该影响另一个.

如果您的域模型突然更改并且现在具有与您的视图模型不再相关的字段,该怎么办?如果它们不是分开的,那么就有问题了.或者,更糟(可能更有可能),如果您的视图模型突然需要来自完全不同的实体的更多信息,该怎么办?您是否打算使用这些完全不相关的信息打破域模型中的类封装,只是为了使它在您的视图中可访问?

保持解决方案的解耦和灵活性.使用视图模型.