我对Entity非常陌生,我正在尝试查找与作为字符串传递的布尔条件匹配的DbSet对象中的所有元素:
Example:
string condition = "Weight > 30 && Age == 20";
var results = context.Data.FindIf(condition);
其中,Weight和Age是Data的属性,给定的布尔条件可以变化。我可以轻松使用LINQ表达式进行硬编码,但是否有一种以我描述的方式进行操作的方法呢?
我对Entity非常陌生,我正在尝试查找与作为字符串传递的布尔条件匹配的DbSet对象中的所有元素:
Example:
string condition = "Weight > 30 && Age == 20";
var results = context.Data.FindIf(condition);
其中,Weight和Age是Data的属性,给定的布尔条件可以变化。我可以轻松使用LINQ表达式进行硬编码,但是否有一种以我描述的方式进行操作的方法呢?
表达式树可以在这里实现你想要的功能。你可以解析字符串来构建表达式树。
你可以使用 原始SQL查询 并对其执行常规SQL语句吗?
context.Database.SqlQuery<Data>("SELECT * FROM [DataTable] WHERE Weight > 30 AND Age = 20");
using System.Linq.Dynamic;
var query =
db.Customers.
Where("City = @0 and Orders.Count >= @1", "London", 10);
有一个Nuget包可用于此:
安装完成后,您可以在项目中找到添加的HTML文件以获取帮助文档。Install-Package DynamicQuery
var results = db.Data.Where(queryRequest);
,其中 queryRequest
是一个包含布尔表达式的字符串。 - Booley