簡體   English   中英

在 C# 中將字典轉換為匿名對象?

[英]Convert Dictionary to anonymous object in c#?

我有一個用 C# 構建的 Web API。 此 Web API 用作查詢 SQL 數據庫的前端。 我使用 SqlKata 作為引擎來執行查詢。 生成 WHERE 子句時,SqlKata 文檔說明如下:

多個字段

如果要針對多個字段過濾查詢,請傳遞一個表示列/值的對象。

var query = new Query("Posts").Where(new {
    Year = 2017 ,
    CategoryId = 198 ,
    IsPublished = true,
});

我希望能夠避免對 WHERE 子句進行硬編碼,而是基於傳入的查詢字符串。 我的想法是將每個查詢字符串名稱和值添加到字典中,然后以某種方式在 SqlKata .Where() 子句中使用該字典的值。 我想也許我可以將 Dictionary 轉換為所需的匿名對象,但我無法讓它工作。 關於如何做到這一點的任何想法? 所以我的網址可能是:

https://webapi.com.au/api?store=120&name=james

字典:store=120 name=james

查詢:var query = new query("Posts").Where(anonObject)

( anonObject 將是 {store=120,name=james} )

您不需要匿名對象。 查看 SqlKata 文檔,您可以通過遍歷字典來構建查詢,如下所示:

//Assuming the dictionary is something like Dictionary<string, object>

var query = new Query("Posts");

foreach(var element in dictionary)
{
    query = query.Where(element.Key, element.Value);
}

var result = query.Get();

注意:以前從未聽說過 SqlKata,所以這只是查看文檔。

暫無
暫無

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

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