2

我开发了我的第一个在 MVC4 中控制的 API,通过脚手架我让它自动输出项目列表:

// GET api/ItemList
public IEnumerable<ItemOption> GetItemOptions()
{
    var itemoptions = db.ItemOptions.Include(i => i.Item);
    return itemoptions.AsEnumerable();
}

这显示了我的模型中的所有项目属性:

public class ItemOption
{
    public int ItemOptionId { get; set; }
    public bool Active { get; set; }
    public string Name { get; set; }
    public string test1 { get; set; }
    public double PriceNet { get; set; }
}

如何指定我希望返回的特定字段?例如,我只想返回 ItemOptionId、Active 和 Name。

我尝试添加其他包含,但这似乎是在对象级别。

4

2 回答 2

2

尝试创建一个新类型来表示您想要返回的属性:

public class ItemOptionResult
{
    public int ItemOptionId { get; set; }
    public bool Active { get; set; }
    public string Name { get; set; }
}

然后投影您的ItemOption收藏,如下所示:

// GET api/ItemList
public IEnumerable<ItemOptionResult> GetItemOptions()
{`enter code here`
    var itemoptions =
        db.ItemOptions
          .Select(i => 
           new ItemOptionResult
           { 
               ItemOptionId = i.ItemOptionId, 
               Active = i.Active, 
               Name = i.Name 
           });
    return itemoptions.AsEnumerable();
}
于 2013-10-29T14:57:14.590 回答
0

尝试这个 :

var itemoptions = db.ItemOptions.Select(io => new ItemOption()
                                              {
                                                   ItemOptionId = io.ItemOptionId,
                                                   Active = io.Active ,
                                                   Name = io.Name
                                              }
return itemoptions.AsEnumerable();
于 2013-10-29T14:58:09.567 回答