在Entity Framework中使用Linq执行动态查询

我有:

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查询,然后将其执行到服务器。

 `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

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