从我读,我明白,我们总是应该传入一个视图模型的视图。但是,有时这个视图模型与EF模型完全一样或几乎相同。它是可以接受的还是有解决这个问题的办法(重复代码)?最佳实践实体框架模型VS的ViewModels
举例来说,如果我有这样的EF-型号:
class UserModel
{
string id {get;set}
string name {get;set}
string address {get;set}
string phone {get;set}
string website {get;set}
}
视图模型如何应该是...是这样的:
class UserViewModel
{
string name {get;set}
string address {get;set}
string otherobject {get;set}
}
或者这样:
class UserViewModel
{
UserModel user;
string otherobject {get;set}
}
使用选项#1,属性会重复...而在另一个视图模式中,它们会再次重复。我将需要重复每个视图模型上的所有数据注释。但是,我只发送我需要的属性。
对于选项#2,什么是重复的,但我经过了很多,我并不需要的属性。
的最后一个选项是混合选项#1,根据需要选择#2 ...但我不喜欢,因为缺乏一个共同的标准的这个选项。有时,属性将在视图模型中定义和数据注解,有时也会在EF模型中定义。
我希望有一个选项#4,我没有看到...?
谢谢。
只要使用最简单,最适合该特定情况的东西。为了简单和可读性而努力......如果使代码更难理解,就没有任何僵化之处。 –