[英]Asp.net Web API database querying
我有一個Asp.net Web Api
項目,該項目具有CRUD方法。
但是,我有一個名為List
的方法,該方法檢索數據庫中找到的項目的列表。
我需要為用戶提供靈活性,以便在實體之上應用custom sorts
或custom queries
。
到目前為止,我發現的最佳解決方案是使用OData
。
但是, OData
比這要復雜得多,我認為它不需要額外的復雜性(創建/更新/刪除現在可以正常工作)。
我的問題是:
我可以在Asp.net Web Api
項目中實現與OData
類似的東西,該項目使我可以從數據庫中查詢數據嗎?
如果沒有,我可以僅在我的控制器( 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:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.