我是 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/