0

初め、

var query = from c in context.PreferredFeedUserCompaniesFollwers
            group c by c.CompanyID into company
            where company.Count() > 10
            select new { company.Key };

2番、

context.Companies.Where(query.contains(x=>x.Id)).tolist();

最初のクエリを使用すると、Preferredusers テーブルで 10 回以上繰り返されるすべての companyID が返されます。2 番目のクエリを使用すると、最初のクエリで取得した companyID を使用して、会社に関するすべての詳細を取得する必要があります。

どちらも機能していません。私は何を間違っていますか?

4

4 に答える 4

0
var query = (from c in context.PreferredFeedUserCompaniesFollwers
             group c by c.CompanyID into g
             where g.Count() > 10
             select c.CompanyID).Distinct();

keyがidフィールドの場合、上記のクエリは結果にIQueryable<int>なり、2番目のクエリも機能するはずです。

于 2012-12-05T10:40:57.057 に答える
0

私はわかりません。しかし、ミデルパットの答えは私には正しいようです。最初のクエリでエラーを解決できません。company.CompanyID!=null 条件を追加しました。試してみませんか?

    var query = (from id in     context.PreferredFeedUserCompaniesFollwers.Where(c=>c.CompanyID!=null).Select(c=>c.CompanyID)
    group id by id into g
    where g.Count() > 10 select id);
于 2012-12-05T12:14:33.263 に答える
0

初め

var query = context.PreferredFeedUserCompaniesFollwers
    .Where(x => x.Count() > 10)
    .Select(x=> x.CompanyID)
    .Distinct();

2番

context.Companies.Where(query.contains(x => x.Id)).tolist();


私はその場で書いたので、うまくいくことを願っています

編集:これはどうですか?個別が必要かどうかはわかりません。

var query = context.PreferredFeedUserCompaniesFollwers
            .GroupBy(y => y.CompanyID)
            .Where(y => y.Count() > 10))
            .Select(x=> x.CompanyID)
            .Distinct();
于 2012-12-05T11:00:35.940 に答える
0

初め、

var query = context.PreferredFeedUserCompaniesFollwers
                   .GroupBy(c => c.CompanyId)
                   .Where(c => c.Count() > 10)
                   .Select(c => c.Key);

2番:

var result = context.Companies
                    .Where(x => query.Contains(x.Id))
                    .ToList();

しかし、頭のてっぺんから。少しエラーが発生する可能性がありますが、これでうまくいくはずです。

于 2012-12-05T15:48:50.550 に答える