Asp.net WHERE子句中的LINQ-CASE语句
我对林克是个新手。我有一个低于linq的问题Asp.net WHERE子句中的LINQ-CASE语句,asp.net,linq,linq-to-entities,Asp.net,Linq,Linq To Entities,我对林克是个新手。我有一个低于linq的问题 var entities = context.MessagingTemplateEntities .Where(m => m.PartyId == partyId && m.MessageTemplateTypeId == messagingTemplateTypeId &
var entities = context.MessagingTemplateEntities
.Where(m =>
m.PartyId == partyId &&
m.MessageTemplateTypeId == messagingTemplateTypeId &&
m.ProductTypePartyId == productTypePartyId);
在此查询中,如果productTypePartyId为0,则我不希望将其包含在&&条件中。那么如何根据值排除参数呢?使用&(m.ProductTypePartyId==ProductTypePartyId | | ProductTypePartyId==0)
而不是
&&m.ProductTypePartyId==ProductTypePartyId
不知道为什么人们总是强迫LINQ成为一行程序
var entities = context.MessagingTemplateEntities
.Where(m =>
m.PartyId == partyId &&
m.MessageTemplateTypeId == messagingTemplateTypeId &&
(productTypePartyId == 0 ?
true :
m.ProductTypePartyId == productTypePartyId));
var entities = context.MessagingTemplateEntities
.Where(m =>
m.PartyId == partyId &&
m.MessageTemplateTypeId == messagingTemplateTypeId);
if(productTypePartyId != 0)
entities = entites.Where(m.ProductTypePartyId == productTypePartyId);
您自己决定哪一个更易于阅读。当productTypePartyId为0时,这将不起作用,它将被添加到和条件中,并且由于表中没有productTypePartyId=0的记录,它将返回空实体。很抱歉,输入错误。编辑我的答案-从第二条中删除
m.
。