【发布时间】:2014-01-18 11:50:23
【问题描述】:
我将 OData 与 Web API 一起使用以返回以下 JSON:
[
{
"EmployeeID": 1,
"FirstName": "Nancy",
"LastName": "Davolio",
"Title": "Sales Representative",
"HireDate": "\/Date(704649600000)\/",
"Territories": [
{
"TerritoryID": "06897",
"TerritoryDescription": "Wilton"
},
{
"TerritoryID": "19713",
"TerritoryDescription": "Neward"
}
]
}
]
例如,我如何过滤 JSON 以显示属于 Wilton 领域的项目? 我已经尝试过了,但似乎不起作用:
http://localhost:62559/Home/Read?$filter=Territories/TerritoryDescription eq Wilton
这是我用来使用存储库模式从数据库返回对象的代码:
[Queryable]
public IQueryable<EmployeeViewModel> Employees
{
get
{
return context.Employees.Select(e => new EmployeeViewModel
{
EmployeeID = e.EmployeeID,
FirstName = e.FirstName,
LastName = e.LastName,
HireDate = e.HireDate,
Title = e.Title,
Territories = e.Territories.Select(t => new TerritoryViewModel
{
TerritoryID = t.TerritoryID,
TerritoryDescription = t.TerritoryDescription
})
});
}
}
这是以 JSON 格式返回对象的控制器:
public ActionResult Read()
{
return Json(repository.Employees, JsonRequestBehavior.AllowGet);
}
【问题讨论】:
标签: c# json asp.net-web-api odata