【发布时间】:2014-12-28 19:38:49
【问题描述】:
如何动态构建 where 子句,有时 OwnerID 将为零,只有 itemID 和 LocationID 将作为搜索条件提供,在这种情况下,LINQ 应该是
(from s in repository.ItemOwners.Include("OwnerDetails")
where s.ItemId == searchCriteria.ItemID &&
s.OwnerDetails.LocationId == searchCriteria.LocationID
select new { s.OwnerDetails.OwnerName, s.OwnerDetails.MobNumber }).ToList();
有时OwnerID 和ItemId 将为零,那么将仅提供LocationID 作为搜索条件,在这种情况下,LINQ 应该是
(from s in repository.ItemOwners.Include("OwnerDetails")
where s.OwnerDetails.LocationId == searchCriteria.LocationID
select new { s.OwnerDetails.OwnerName, s.OwnerDetails.MobNumber }).ToList();
有时会提供整个OwnerID、ItemID 和LocationID 作为搜索条件,那么LINQ 将是这样的
(from s in repository.ItemOwners.Include("OwnerDetails")
where s.OwnerId == searchCriteria.OwnerID &&
s.ItemId == searchCriteria.ItemID &&
s.OwnerDetails.LocationId == searchCriteria.LocationID
select new { s.OwnerDetails.OwnerName, s.OwnerDetails.MobNumber }).ToList();
这里只有where子句在改变,请帮我解决。如何动态构建where 子句(请注意,这里我有一个导航属性OwnerDetails.LocationId)。
【问题讨论】:
标签: c# linq entity-framework linq-to-sql linq-to-entities