0

我只是想知道您如何在从数据库生成的模型生成的实体上创建动态属性。

例如,我有一个 UserInformation 表。在该表中,它包含有关用户(以及错误)的基本信息,例如用户名、地址详细信息等。我想添加一个只读属性,将用户的姓名、地址详细信息和电话号码连接成一个字符串,我可以输出到看法。关于我将如何创建这个动态属性的任何想法。这只是一个简单的例子,我想做一些更复杂的计算和连接。

谢谢

4

1 回答 1

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 });
        }
    } 
    ....
}

然后将整个数据对象传递给视图而不是特定模型。

于 2010-09-13T06:04:44.607 回答