返回实体框架中的“计算”字段

时间:2019-04-28 07:12:15

标签: c# asp.net entity-framework

我有这段代码。我的意图是创建一个字段,该字段可以作为textValue传递给SelectList对象。

这是我的两个实体:

public class Ski
{
    public int ID { get; set; }
    public int BrandID { get; set; }

    public virtual Brand Brand { get; set; }

    [NotMapped]
    public string BrandName
    {
        get
        {
            return this.Brand.Name.ToString();
        }
    }

}

public enum BrandName
{
    Blizzard, MCAD, ATOMIC
}

public class Brand
{
    public int ID { get; set; }
    public BrandName Name { get; set; }
}

SelectList初始化

ViewBag.SkiID = new SelectList(db.Skis, "ID", "BrandName");

但是这种解决方案似乎不起作用。

那怎么实现呢?

错误说我有一个关联的DataReader。

1 个答案:

答案 0 :(得分:0)

创建此视图模型:

public class SkiViewModel
{
    public string Text{ get; set; }
    public int Value{ get; set; }
}

并更改您的代码:

var result = db.Skis.Select(x => new SkiViewModel()
{
    Text = x.BrandName.Name ,
    Value = ID

});

ViewBag.Skis = new SelectList(result, "Value", "Text");

并在视野范围内:

@Html.DropDownList("Value", new SelectListItem(ViewBag.Skis , "Value", "Text"))