在实体框架中使用Linq执行动态查询

本文关键字:Linq 执行 动态 查询 实体 框架 | 更新日期: 2023-09-27 18:26:23

我有:

string table_name = "Orders";
string column_name = "Name";
string identity_column = "OrderID"
int identity_value = 5;

如何(动态)实现以下目标:

var result = (from order in db.Orders
              where order.OrderId== identity_value 
              select order).SingleOrDefault();

出于安全原因,我不能创建一个完整的sql查询,然后将其执行到服务器。

在实体框架中使用Linq执行动态查询

`System.Linq.Dynamic` library will help you generating dynamic query which has extension method
Where(string predicate,params object[] values)

要使用它,首先包括名称空间

using System.Linq.Dynamic;

然后在运行时构造谓词

string predicate = "OrderId = @0";
int identity_value = 5;

然后查询数据库。订单

db.Orders.AsQueryable().Where(predicate,identity_value);