在实体框架3.5中搜索查询

时间:2011-05-09 10:34:03

标签: c# linq entity

我需要使用订单表

在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吗? 任何帮助表示赞赏。

由于

2 个答案:

答案 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

相关问题