0

最近、Tag テーブルの EnglishValue 列でデータベースを検索する検索機能を開発しました。検索ボックスからキーワードのリストを受け取り、次のクエリを使用して検索すると、正しい結果が得られます。

List<string> keywords = new List<String>(searchText);


IQueryable<Tag> tags = from p in db.Tags
                       where keywords.Contains(p.EnglishValue)
                       select p;

var matchingTagList = tags.ToList();

現在、質問の 1 つは "AND" を使用して検索することです。現在、LINQ クエリは OR を実行しています。LINQToSQL を使用して AND 検索を行う方法を提案できる人がいれば、それが役立ちます。

データベースがどのように見えるかについて、さらに詳細を追加しています。ペットフレンドリーと Wi-Fi を検索すると、Id= 1 を取得する必要があります。

データベース テーブル

4

2 に答える 2

1

これを試して:

List<string> keywords = new List<String>(searchText);    

IQueryable<Tag> tags = from p in db.Tags
                        where keywords.All(x=> p.EnglishValue.Contains(x))
                        select p;

var matchingTagList = tags.ToList();
于 2013-10-22T13:23:51.893 に答える