1

MVC プロジェクトで検索関数を作成しました。これはデータベースと一致します。

データベースには次のような構造があります。

Name - 文字列 (データの名前)

SubName - 文字列 (データのサブネーム)

SomeData - int (実際のデータ)

したがって、データの値が異なる名前と特定のサブネームを持つ投稿が 100 件ほどあるとします。その後、同じ名前で別のサブネームを持つ 100 件の投稿が追加されます。

データベースを検索するときは、このlinqコードを使用します。

        var names = db.Graphs
            .Where(r => r.Name.Contains(term))
            .Take(5).Distinct()
            .Select(r=> new {label = r.Name});

そのメイビーは5つの異なる答えを出すと思いましたが、そうではありません...

最初の 100 件の投稿のうち 5 件を取得しました。サブネームを持つ一意の名前のみを取得するようにフィルタリングしたいと思います。したがって、上記の例では、2 つのエントリを復活させます。

私はすべてを試して失敗したように感じるので、どんな入力も感謝されます.

4

1 に答える 1

0
   var names = db.Graphs
    .Where(r => r.Name.Contains(term))
    .GroupBy(s=>s.Name).Take(5)
    .Select(r => new { label = r.FirstOrDefault().Name });

Take() の前に Distinct() を適用する必要があります。これが役立つことを願っています。

于 2013-02-12T13:12:42.203 に答える