1

使用可在http://services.odata.org/Northwind/Northwind.svc/處獲得的Northwind OData饋送,如何獲取分配給TerritoryID = 19713的員工列表?基於導航屬性中包含的值過濾odata結果

我可以使用以下LINQ查詢獲得員工和地區,但沒有All/Any方法,我不確定如何執行我所要求的操作。

from e in Employees.Expand("Territories") select e 

我假設這很簡單,我只是沒有看到樹木的森林......所以,在此先感謝您的幫助。

+0

該URL不起作用...該子域不存在 –

+0

您可能需要再試一次...該URL對我來說工作正常。 – DarLom

+0

仍然不適合我,我無法解析主機名。這很奇怪... –

回答

3

在這種情況下,你可以把它周圍

Territories.Expand("Employees").Where (t => t.TerritoryID == "19713") 

但是總體來說,對LINQ的OData具有操作數的非常有限的子集。諸如AnyContains之類的方法可用於例如類似的查詢。 linq到實體,不支持。

+1

他們只是添加任何/所有支持OData v3和WCF數據服務5.請參閱http://msdn.microsoft.com/en-us/library/ee622463( v = vs.103)的.aspx#濾波。不幸的是,Northwind svc仍然是第2版,所以你的方式是我想的唯一途徑。 –

+0

@JasonFreitas很高興知道! –

+1

在那裏還有一個V3 Northwind服務。例如:http://services.odata.org/V3/Northwind/Northwind.svc/Categories?$filter=Products/any(p:p/UnitPrice gt 20) –