【发布时间】:2009-08-25 17:37:56
【问题描述】:
我正在为使用实体框架的应用程序实现搜索功能。有几个可选字段用于搜索特定的数据库表/视图。使用 EF 实现此类搜索的最佳方法是什么?存储过程?还是只能(实际上)使用 Linq 来完成?
【问题讨论】:
标签: c# linq entity-framework
我正在为使用实体框架的应用程序实现搜索功能。有几个可选字段用于搜索特定的数据库表/视图。使用 EF 实现此类搜索的最佳方法是什么?存储过程?还是只能(实际上)使用 Linq 来完成?
【问题讨论】:
标签: c# linq entity-framework
处理可选搜索参数的常见模式是执行以下操作:
string p = null;
var q = from o in dataContext.Products
where ((o.Name == p) || (p == null))
select o;
【讨论】:
您应该能够在 LINQ 中轻松做到这一点。永远记住 LINQ 查询是可链接的:
var query = (from p in products
select p);
if(field1 != null)
{
query = (from p in query
where p.Field1 = field1
select p);
}
if(field2 != null)
{
query = (from p in query
where p.Field2 = field2
select p);
}
foreach(Product p in query)
{
// ...
}
【讨论】:
Loren 所说的将起作用 (+1)。或使用Microsoft Dynamic LINQ。它适用于 L2E。
【讨论】:
您可以查看 this article 关于动态生成 lambda 表达式对象来执行此操作。
【讨论】: