asp.net - LINQ - WHERE 子句中的 CASE 语句

标签 asp.net linq linq-to-entities

我对 LINQ 还很陌生。我有一个下面的 linq 查询

var entities = context.MessagingTemplateEntities
                      .Where(m => 
                          m.PartyId == partyId && 
                          m.MessageTemplateTypeId == messagingTemplateTypeId &&
                          m.ProductTypePartyId == productTypePartyId);

在此查询中,如果 productTypePartyId 为 0,那么我不想将其包含在 && 条件中。那么如何根据值排除参数呢?

最佳答案

不知道为什么人们总是强制 LINQ 成为单行代码。

var entities = context.MessagingTemplateEntities
                      .Where(m => 
                          m.PartyId == partyId && 
                          m.MessageTemplateTypeId == messagingTemplateTypeId);

if(productTypePartyId != 0)
   entities = entites.Where(m.ProductTypePartyId == productTypePartyId);

自己决定哪一个更容易阅读。

关于asp.net - LINQ - WHERE 子句中的 CASE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8356300/

相关文章:

c# - 应用程序与缓存 : Lock mechanism

jQuery 对话框回发但 UpdatePanel 未更新

c# - 需要时髦的 LINQ(第 2 部分)

LINQ to Entities 无法识别方法 'System.String Format(System.String, System.Object, System.Object)'

c# - LINQ to Entities 无法识别该方法

asp.net - Access OLEDB 报告 "syntax error"但该语句看起来正确

c# - 在回发期间禁用 asp.net 动态按钮单击事件并在之后启用它

C# 添加范围列表<List<T>>

c# - 通过文本在 Linq 中选择列名

linq - 将sql查询转换为linq的工具