簡體   English   中英

ASP.NET Web API數據庫查詢

[英]Asp.net Web API database querying

我有一個Asp.net Web Api項目,該項目具有CRUD方法。

但是,我有一個名為List的方法,該方法檢索數據庫中找到的項目的列表。

我需要為用戶提供靈活性,以便在實體之上應用custom sortscustom queries

到目前為止,我發現的最佳解決方案是使用OData

但是, OData比這要復雜得多,我認為它不需要額外的復雜性(創建/更新/刪除現在可以正常工作)。

我的問題是:

  1. 我可以在Asp.net Web Api項目中實現與OData類似的東西,該項目使我可以從數據庫中查詢數據嗎?

  2. 如果沒有,我可以僅在我的控制器( List )中為一種方法實現OData嗎?

OData在.NET平台上是一個不錯的選擇。 當然,還有其他選擇,但是OData應該足以滿足您的用例。 如果您不需要OData的所有功能,則還可以遵循類似的原則來實現查詢自己,前提是所有OData都是協議,並且Microsoft在.NET中擁有自己的實現。

是的,您可以全局啟用OData查詢,也可以在Web API控制器中啟用單個操作。

以下是ASP.NET網站的摘錄:

EnableQuerySupport方法為返回IQueryable類型的任何控制器操作全局啟用查詢選項。 如果您不想為整個應用程序啟用查詢選項,則可以通過將[Queryable]屬性添加到操作方法來為特定的控制器操作啟用它們。

這是啟用查詢的示例Web API控制器:

public class ProductsController : ApiController
{
    [EnableQuery]
    IQueryable<Product> Get() {}
}

您可以使用以下URL在上述控制器上調用客戶端驅動的頁面調度:

http://localhost/Products?$top=10&$skip=20

此處的更多信息: http : //www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/supporting-odata-query-options

在上面的示例中,我使用了EnableQuery屬性而不是Queryable因為后者已過時。

您可以使用以下NuGet軟件包安裝OData:

https://www.nuget.org/packages/Microsoft.AspNet.OData/

暫無
暫無

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

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