仅返回特定属性
本文关键字:属性 返回 | 更新日期: 2023-09-27 18:37:23
我开发了我的第一个在 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。
我尝试添加其他包含,但这似乎是在对象级别。
尝试创建一个新类型来表示要返回的属性:
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();
}
试试这个:
var itemoptions = db.ItemOptions.Select(io => new ItemOption()
{
ItemOptionId = io.ItemOptionId,
Active = io.Active ,
Name = io.Name
}
return itemoptions.AsEnumerable();