nou*_*ime 8 c# json odata asp.net-web-api
我将 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"
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
例如,如何过滤 JSON 以显示属于威尔顿领土的项目?我试过这个,但似乎不起作用:
http://localhost:62559/Home/Read?$filter=Territories/TerritoryDescription eq Wilton
Run Code Online (Sandbox Code Playgroud)
这是我使用存储库模式从数据库返回对象的代码:
[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
})
});
}
}
Run Code Online (Sandbox Code Playgroud)
这是返回 JSON 对象的控制器:
public ActionResult Read()
{
return Json(repository.Employees, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
我在阅读与我相关的问题时遇到了以下答案:
使用 OData Wep Api 在数据传输对象上嵌套过滤器
有趣的是,我在之前的搜索中从未遇到过这个问题。不然我也不会问这个问题。无论如何,这个方法对我有用:
http://localhost:62559/Home/Read?$filter=Territories/any(c:%20c/TerritoryDescription eq 'Wilton')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11656 次 |
| 最近记录: |