我需要在客户表上构建搜索查询 与订单表的连接
string firstname = "Joe";
string emailFilter = "joe@email.com";
string city=null;
在SQL中,我们可以这样做
SELECT @sql =
'SELECT * from
FROM dbo.Orders o
inner join
JOIN dbo.Customers c ON o.CustomerID = c.CustomerID
WHERE 1 = 1'
IF @firstname IS NOT NULL
SELECT @sql = @sql + ' AND c.firstname= @firstname'
IF @city IS NOT NULL
SELECT @sql = @sql + ' AND c.city >= @city'
我需要构建一个实体框架 3.5 linq 查询与订单和客户表联接具有动态搜索条件。
如果值不为 null,我需要在 linq 中使用 where 子句
我是林克的新手。我们需要使用Iqueryable吗?任何帮助表示赞赏。
谢谢
你可以尝试这样的东西:
var result = from o in context.Orders.include("customers")
where o.city == (city == null ? o.city : city) && o.firstname == (firstname == null ? o.firstname : firstname)
select o;
您可以在此处查看动态 Linq http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx 它会对您有所帮助,或者 stackoverflow.com 搜索动态 linq 标记的问题和答案 https://stackoverflow.com/questions/tagged/dynamic-linq