C# 选择QueryBuilder-查询具有相同值的多个列

C# 选择QueryBuilder-查询具有相同值的多个列,c#,sql,selectquerybuilder,C#,Sql,Selectquerybuilder,使用时,我正在努力获取要生成的所需查询 我有一个搜索窗口,它接受多个值并为数据库构建相关的搜索字符串。这一切都很好,问题出现在查看两个特定字段时 数据库记录为每个联系人保存多个电子邮件地址,但是我似乎无法编写构建字符串所需的代码,该字符串查看每个电子邮件列并比较搜索词 所需的结果是一个如下所示的查询 SELECT col1, col2, col3 FROM table WHERE ( (email = val OR email2 = val) AND

使用时,我正在努力获取要生成的所需查询

我有一个搜索窗口,它接受多个值并为数据库构建相关的搜索字符串。这一切都很好,问题出现在查看两个特定字段时

数据库记录为每个联系人保存多个电子邮件地址,但是我似乎无法编写构建字符串所需的代码,该字符串查看每个电子邮件列并比较搜索词

所需的结果是一个如下所示的查询

SELECT col1, col2, col3 
FROM table 
WHERE (
          (email = val OR email2 = val) 
          AND col4 = val2 
          AND col5 = val3
      )
SELECT col1, col2, col3 
FROM table
WHERE 
    (email = val AND col4 = val2 AND col5 = val3) 
OR 
    (email2 = val AND col4 = val2 AND col5 = val3)
我试图避免一种看起来像

SELECT col1, col2, col3 
FROM table 
WHERE (
          (email = val OR email2 = val) 
          AND col4 = val2 
          AND col5 = val3
      )
SELECT col1, col2, col3 
FROM table
WHERE 
    (email = val AND col4 = val2 AND col5 = val3) 
OR 
    (email2 = val AND col4 = val2 AND col5 = val3)

这是可能的使用或我应该看看替代方法


注意:我可以实现第二个结果,但是它非常混乱,如果将来需要额外的字段,它将很难维护code@BugFinder这两个sql代码都没有问题。问题是我不知道如何使用selectquerybuilder实现第一个查询。我可以实现第二个,但它非常混乱,很难维护“或者我应该考虑其他方法”-我会寻找任何ORM,比如实体框架,只是因为它将更易于维护,更清晰地显示原始sql查询,即使使用查询生成器。@Evk不幸的是,我现在没有时间删除旧系统并用EF替换它(一旦当前应用程序启动,它就在要做的事情列表中)