簡體   English   中英

評估存儲為字符串的表達式

[英]Evaluating an expression stored as a string

我想在數據庫中存儲一個布爾表達式,並對其求值。 不必存儲完整的表達式樹,字符串可以做到這一點。

我想象過這樣的方案: Criteria (expression_to_evaluate, value_to_return)

例如,假設我有一個匹配年齡在20至40歲之間的人的表達式:

(var >= 20 AND var <= 40)

var必須替換為相關人員的年齡,並且如果存在匹配項,則應返回該行。 如果不匹配,則應考慮下一行,評估該表達式,依此類推。

可能有更復雜的表達式,例如: ((var >= 20 AND var <= 40) OR (var < 10))

甚至有兩個變量: ((var1 <= 10) AND (var2 >= 10 OR var1 == 20))

這應該在SQL(SQL Server 2005/2008)或C#中完成。 匹配行的值應返回並在C#中進一步處理。

這有可能嗎?

EXECUTE | EXEC允許您首先構建一個T-SQL字符串,然后執行它。 您可以執行邏輯以首先根據變量構建字符串,然后簡單地EXEC它。

同樣,您可以在C#中執行相同的操作,並使用ExecuteNonQuery()ExecuteReader()執行T-SQL。

使用System.Linq.Dynamic東西和普通的linq-to-sql一起隱藏在Visual Studio代碼示例中。 指定的屬性名稱將針對生成的實體類進行映射。

myContext.MyTable.Where("Property > 20 && Property < 40").ToList();

暫無
暫無

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

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