本文介绍了linq搜索多列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用ling-to-sql在多列中搜索一个字符串,我想知道如何编写where子句.这就是我所拥有的:我正在传递要搜索的ID列表以及搜索词:

I want to search for a string in multiple columns using ling-to-sql and I'm wondering how to write the where clause. This is what I have: I'm passing a list of IDs to search as well as a search term:

public List<long> Seach(string TheSearchTerm, List<long> TheIDs)
{

using (SomeDataContext TheDC = new SomeDataContext())
{
    var TheOutput = (from t in TheDC.SomeTable

                     where TheIDs.Contains(t.ID) &&
                      where "TheSearchTerm is in one of the columns"

                     select t.ID).ToList();
    }
}

如何编写第二个where子句以搜索所有列?我想为每列写一个where子句,但我想知道是否有更好的方法.

How do I write the second where clause the searches for all the columns? I thought of writing a where clause for each column but I'm wondering if there's a better way.

谢谢.

推荐答案

var TheOutput = (from t in TheDC.SomeTable

                 where TheIDs.Contains(t.ID) && (
                 t.column1.Contains(TheSearchTerm) ||
                 t.column2.Contains(TheSearchTerm) ||
                 t.column3.Contains(TheSearchTerm) )
                 select t.ID).ToList();
}

您应该只具有一个where子句,并将所有列的检查与||结合在一起.

You should only have one where clause and combine checks of all columns with ||.

这篇关于linq搜索多列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-29 13:34