【问题标题】:search query in entity framework 3.5实体框架 3.5 中的搜索查询
【发布时间】:2011-05-09 10:34:02
【问题描述】:

我需要在客户表与订单表连接上构建搜索查询

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 查询加入订单和客户表 具有动态搜索条件。

如果值不为空,我需要在 linq 的 where 子句中使用

我是 Linq 的新手。 我们是否需要使用 Iqueryable。 任何帮助表示赞赏。

谢谢

【问题讨论】:

  • 请在提问前编译您的代码并查看错误消息

标签: c# linq entity


【解决方案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;

【讨论】:

    【解决方案2】:

    您可以在此处查看 Dynamic 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多