MVC - 数据类 - 只需要属性的子集?

时间:2010-11-14 23:00:14

标签: asp.net-mvc

例如,问题类会有问题,标题,内容,发布时间,海报,标签等。这就是获取数据的样子:

 public bool LoadFromDataRow(DataRow row)
        {
            questionId = (long)row["questionId"]; 
            content = (string)row["content"];
            poster = (string)row["poster"];
            datePosted = (DateTime)row["datePosted "];
            title = (string)row["title"];
            return true;
        } 

然而,可能有一段时间我只选择这些属性的子集,如questionid和title。我是否需要编写另一个类来处理这个问题?或者在我使用类似的东西获取值之前,是否需要检查每一列:

if(row.hascolumns(...)) // seems like overkill? 

1 个答案:

答案 0 :(得分:1)

恕我直言,让您的存储库方法返回一个模型,其中所有属性都被映射,然后在视图上显示/编辑此模型时使用视图模型。然后在您的模型和视图模型(这将是模型的子集)之间执行映射,并在视图中使用视图模型。这有一个例外:BLOB。如果要在数据库中存储二进制数据(如图像),我建议您使用两种不同的方法:一种是获取图像,另一种是不提取图像。