我需要使用订单表
在Customers表连接上构建搜索查询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子句中使用我是Linq的新手。 我们需要使用Iqueryable吗? 任何帮助表示赞赏。
由于
答案 0 :(得分:1)
您可以尝试以下内容:
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;
答案 1 :(得分:1)
您可以在此处查看动态Linq http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx它可以帮助您或搜索stackoverflow.com以获取dynamic-linq标记问题和答案https://stackoverflow.com/questions/tagged/dynamic-linq