簡體   English   中英

如何為Odata創建查詢表達式以通過ID獲取

[英]How to create query expression for Odata for get by Id

我創建了一個OData服務,現在嘗試在客戶端使用此服務。 我想為c#查詢表達式中的以下網址創建一個表達式-

http://odata.org/Product-Service/Product(150)

上面的URL在瀏覽器中工作正常,但是我想在C#中為上面的URL創建查詢表達式。 任何幫助將是非常可觀的。

您可以在System.Data.Services.Client使用DataServiceContext + DataServiceQuery來訪問Url。 請記住,由於延遲加載,在調用First()之前不會執行任何查詢。

var context = new DataServiceContext(new Uri("http://odata.org/Product-Service"), DataServiceProtocolVersion.V3);
var query = context.CreateQuery<Product>("Product");
Product product = query.Where(p => p.Id == 150).First();

以上內容應解析為http://odata.org/Product-Service/Product(150) ,您可以通過查看query.Entities集合進行檢查。 集合中的每個實體都將包含一個Uri。

同樣,如果您的Product類包含導航屬性,則需要添加擴展查詢選項,從而:

var query = context.CreateQuery<Product>("Product").
   AddQueryOption("$expand", "NavigationProperty");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM