Asp.net mvc 4 属性未映射到数据库的MVC

Asp.net mvc 4 属性未映射到数据库的MVC,asp.net-mvc-4,model,Asp.net Mvc 4,Model,我正在创建一个包含下拉列表和一些其他字段的视图,这些字段将更新数据库。在模型中,有映射到数据库的属性和用于dropdownlistfor的一些属性。未映射的属性引发异常。有没有一种好方法可以将下拉列表属性从映射中排除?我试着把它们放在模型中的一个单独的类中,但没有成功 模型: [Table("cardata")]//Links the external table to this model object public class Cardata { //Maps to the data

我正在创建一个包含下拉列表和一些其他字段的视图,这些字段将更新数据库。在模型中,有映射到数据库的属性和用于dropdownlistfor的一些属性。未映射的属性引发异常。有没有一种好方法可以将下拉列表属性从映射中排除?我试着把它们放在模型中的一个单独的类中,但没有成功

模型:

[Table("cardata")]//Links the external table to this model object
public class Cardata
{
    //Maps to the database
    public int id { get; set; }
    public int dealerID { get; set; }
    public string model { get; set; }
    public int numCyl { get; set; }
    public double weight { get; set; }


    // UNMAPPED Used for a drop list of car names
    public string carModel { get; set; }

    public IEnumerable<SelectListItem> carList
    {
        get
        {
            cartableContext ctc = new cartableContext();

            IEnumerable<SelectListItem> retVal = ctc.cardata.GroupBy(c => c.model).Select(cl => cl.FirstOrDefault()).Select(cars => new SelectListItem { Value = cars.id.ToString(), Text = cars.model.ToString() });
            return retVal;
        }
        set { }
    }        
}
[Table(“cardata”)]//将外部表链接到此模型对象
公共类卡达塔
{
//映射到数据库
公共int id{get;set;}
公共int dealerID{get;set;}
公共字符串模型{get;set;}
public int numCyl{get;set;}
公共双权重{get;set;}
//未映射用于汽车名称的下拉列表
公共字符串carModel{get;set;}
公共数字卡莱斯特
{
得到
{
cartableContext ctc=新的cartableContext();
IEnumerable retVal=ctc.cardata.GroupBy(c=>c.model).Select(cl=>cl.FirstOrDefault()).Select(cars=>newselectListItem{Value=cars.id.ToString(),Text=cars.model.ToString());
返回返回;
}
集合{}
}        
}

您能使用[NotMapped]吗

[NotMapped]
public string carModel { get; set; }

[NotMapped]
public IEnumerable<SelectListItem> carList{...}
[未映射]
公共字符串carModel{get;set;}
[未映射]
公共IEnumerable carList{…}
错误做法(就像在属性中使用数据库访问代码一样)!您应该创建一个视图模型,其中包含视图特定元素的属性,例如
SelectList
s。可以使用诸如之类的工具将数据模型特性映射到视图模型特性。或者,您可以将
SelectList
添加到ViewBag。