我已经开发了我在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。
我尝试添加其他包含,但这似乎是在对象级别。
答案 0 :(得分: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();
}
答案 1 :(得分:0)
试试这个:
var itemoptions = db.ItemOptions.Select(io => new ItemOption()
{
ItemOptionId = io.ItemOptionId,
Active = io.Active ,
Name = io.Name
}
return itemoptions.AsEnumerable();