我只是想知道如何在从数据库生成模型生成的实体上创建动态属性。
例如,我有一个UserInformation表。在该表中,它具有用户(井)的基本信息,如用户名,地址详细信息等。我想添加一个只读属性,将用户的姓名,地址详细信息和电话号码连接成一个我可以输出到的字符串视图。关于如何创建这个动态属性的任何想法。这只是一个简单的例子,我想做一些更复杂的计算和连接。
由于
答案 0 :(得分:1)
有很多方法可以做到这一点。我相信映射到数据库表的类应该保留为“纯”,并且只包含反映数据库中实际字段的属性,但这两种方式都类似。
您可以创建一个模型类,其中包含要在视图中显示的所需信息:
public ViewResult Details(int id)
{
UserInformation info = ... // get the information object from the database
UserInformationModel model = new UserInformationModel {
Id = info.Id,
Details = String.Join(" ", new[] { info.Name, info.Address, info.PhoneNumber }) );
}
return View(model);
}
如果要将其添加到数据绑定对象,请选择
public class UserInformation
{
...
public string Details
{
get
{
return String.Join(" ", new[] { info.Name, info.Address, info.PhoneNumber });
}
}
....
}
然后将整个数据对象传递给视图而不是特定模型。