在ViewData上从Entity添加参数到Object

时间:2014-07-01 16:42:51

标签: asp.net-mvc asp.net-mvc-3

我有一个实体,其中包含以下信息:

public class PersonOE
    {
        public string Name  { get; set; }
        public int? Age     { get; set; }
        public string City  { get; set; }
    }

我的控制器在不同类型的视图中使用此对象,在特定的ViewModel中我需要为此模型添加特定参数:

public string Style  { get; set; }

这是一个简单的示例,但总的来说,我不想将Style添加到我的实体中,我需要创建一个" Person"的列表数组。我认为的主要对象,如:

public class PersonStyleViewData : ViewModel
    {
        public List<PersonOE>[] ListPeople { get; set; }
        //I want to have the following object as "PersonOE" into this list
        //Name  
        //Age     
        //City  
        //Style  

    }

有没有办法创建这个&#34; ListPeople&#34;具有Style变量的结构,而无需将其添加到实体?

1 个答案:

答案 0 :(得分:1)

好吧,你可以创建另一个类并使用一些继承

public class PersonOEWithStyle : PersonOE
{
    public string Style { get; set; }
}

上述类将包含属性NameAgeCityStyle

然后只需输入PersonOEWithStyle类型的列表。

另一种方法不是使用List,而是使用像字典

这样的东西

Dictionary<PersonOE, string> personStyle;

这实际上取决于你使用它的最佳方法。但不,你不能添加&#39;仅在某些情况下对现有类的属性,而不实际使其成为类的一部分。你最好的选择可能是创建某种类型的基类并从中衍生出来。