2

それぞれがタイトルを持つレコードのデータベースがあります。リストまたは配列に分割される検索文字列を使用して、このデータベースを検索できるようにしたいと考えています。

たとえば、「Book Dog」で検索すると、タイトルに「Book」または「Dog」が含まれるすべてのタイトルが検索されます。

私はエンティティフレームワークを使用しています。やりたいことを書き留める最も簡単な方法は

string[] words;
var posts = (from p in ctx.posts
where p.title.contains(words)
select p).ToList();

オンラインで見つけた StringExtension を使用してみましたが、次のエラーが表示されます。店の表現に。」

そして拡張子は

public static bool ContainsAny(this string str, params string[] values)
    {
        if (!string.IsNullOrEmpty(str) || values.Length > 0)
        {
            foreach (string value in values)
            {
                if (str.Contains(value))
                    return true;
            }
        }

        return false;
    }
4

3 に答える 3

10

これを探していますか?

var posts = (from p in ctx.posts
    where words.Any(w => p.title.Contains(w))
    select p).ToList();
于 2013-04-26T22:28:08.050 に答える
0

あなたの質問(登録フォーム)のようなものを探していましたが、私の質問は次のとおりでした:(テキストボックスから)入力した名前全体がデータベース内のレコードと完全に同じかどうかを調べる方法は?

私はこれを試してみましたが、うまくいきました:

db.Users.Any(x => x.UserName.Equals(txtUsername.Text))

または、次のようなコードの場合:

ctx.posts.Any(x => x.title.Equals(words))

他の人にも役立つかもしれません。

于 2019-11-11T00:31:27.707 に答える