c# - 动态 where 子句 Entity Framework 3.5

标签 c# linq entity

我是 Entity Framework 的新手。 我需要开发一个基于订单和客户的 Linq 查询。

例如:string firstName 可以是这三个值中的任何一个

1) 空 2) 乔 3) 喜欢 %Joe%'

simailary 我需要为姓氏开发

我现在的查询是这样的

                using (NorthwindEntities ent = new NorthwindEntities())
                {
                    var UsersList = ent.User.Include("Orders").
                                Include("OrderDetails").
                                Include("OrderDetails.Products").
                               .Where(o => (firstName== null || o.firstName== firstName||o.firstName.Contains(firstName)) 
&& (LastName== null || o.LastName== LastName ||o.LastName.contains(LastName) ) 

    }

我的查询是否正确。是否还有其他更好的选择来编写 linq 实体查询。

谢谢

最佳答案

您可以向 Queryable 对象添加条件。条件会建立起来,直到执行数据查询。

var UsersList = ent.User.Include("Orders")
               .Include("OrderDetails")
               .Include("OrderDetails.Products");

if (!string.IsNullOrEmpty(firstName))
   UsersList = UsersList.Where( o => o.firstName.Contains(firstName));

if (!string.IsNullOrEmpty(LastName))
   UsersList = UsersList.Where( o => o.LastName.Contains(LastName));

关于c# - 动态 where 子句 Entity Framework 3.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5940978/

相关文章:

c# - 将分配的值从非托管代码返回到托管代码

c# - 如何用Linq SqlQuery 构造MySqlParamter?

jsf - JPA实体作为JSF Bean?

c# - 需要一个接受实体 ID 并包含的通用 EF 方法

google-app-engine - 如何从 GAE 服务器获取所有实体类型?

c# - 在 asp.net 中获取机器的唯一信息

c# - 如何将参数传递给 cmd.exe 并将结果返回到 C# Windows 应用程序

c# - 如何从 DateTime 中删除值?

c# - 在 LINQ 中选择多维数组

c# - 按多列分组 - LINQ