我对MVC和LINQ很新。并且有一些问题。
我有一个名为users的表,我为男性和女性存储“M”或“F”。还有另一个名为Genders的表,它链接到Users表。我在ASP.NET MVC应用程序中有用户模型。我的问题是当我显示数据时,我应该在哪里创建一个属性,将“M”转换为“男性”,将“F”转换为“女性”。我已经拥有UsersFormViewModel。我应该在那里添加它还是直接添加到UsersModel。
非常感谢
答案 0 :(得分:1)
我对MVVM的规则(这听起来就像你有一个UsersFormViewModel
类一样)是为了避免在模型中执行类似视图的活动。
模型可以直接从数据库复制数据(贫血模型),也可以是业务对象(域模型)。在任何一种情况下,模型都应该只包含必要且足以表示自身的数据。
ViewModel应包含View所需的所有内容,以使模型适应显示。一直到“SaveActionEnabled”等属性,以便UI行为由数据绑定控制。
在您的情况下,您存储“M”&数据库中的“F”因此模型适合确保仅使用这两个值,因此您可能需要考虑为此目的创建enum
。
public enum Gender
{
Male,
Female,
}
然后在您的模型中使用此属性:
public Gender Gender { get; set; }
然后,您的ViewModel应将枚举映射到字符串。使用ToString()
很容易。
现在,您可以从数据库中获得两种性别状态的一致表示,并且可以向用户显示数据。
这对你有什么用?