簡體   English   中英

使用布爾表達式的C#Entity Framework查詢?

[英]C# Entity Framework query using boolean expressions?

我是Entity的新手,我正在嘗試查找DbSet對象中的所有元素,這些元素與作為字符串傳遞的布爾條件匹配:

Example: 
string condition = "Weight > 30 && Age == 20";
var results = context.Data.FindIf(condition);

其中Weight和Age是Data的屬性,給定的布爾條件可以變化。 我可以使用LINQ表達式輕松編寫代碼,但有沒有辦法以我描述的方式執行此操作?

表達式樹可以在這里想要你想要的。 您可以解析字符串以構建表達式樹。

https://msdn.microsoft.com/en-us/library/bb397951.aspx

https://msdn.microsoft.com/en-us/library/bb882637.aspx

你可以使用原始的SQL查詢 ,只是對它執行普通的SQL?

context.Database.SqlQuery<Data>("SELECT * FROM [DataTable] WHERE Weight > 30 AND Age = 20");

您可以使用DynamicLinqQuery庫對IQueryable源使用字符串epxressions。 該庫建立在表達式樹的MSDN文章和@tdbeckett共享的動態查詢構建器中描述的功能之上

它允許您將動態條件寫為字符串,例如

using System.Linq.Dynamic;

var query = db.Customers. Where("City = @0 and Orders.Count >= @1", "London", 10);

有一個Nuget包可用於此:

Install-Package DynamicQuery

完成安裝后,您可以在項目中找到添加了幫助文檔的HTML文件。

暫無
暫無

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

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