0

第一的,

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

第二,

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

通过使用第一个查询,它应该返回表 Preferredusers 中重复超过 10 次的所有 companyID,通过使用第二个查询,我应该使用从第一个查询中获得的 companyID 获取有关公司的所有详细信息。

两者都没有工作。我究竟做错了什么?

4

4 回答 4

0

第一的

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

第二

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 = (from c in context.PreferredFeedUserCompaniesFollwers
             group c by c.CompanyID into g
             where g.Count() > 10
             select c.CompanyID).Distinct();

如果 key 是 id 字段,上面的查询应该会产生一个IQueryable<int>,现在你的第二个查询应该也可以工作

于 2012-12-05T10:40:57.057 回答
0

我不知道。但是 middelpat 的答案对我来说是正确的。您在第一个查询中遇到无法解决错误。我刚刚添加了 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
                   .GroupBy(c => c.CompanyId)
                   .Where(c => c.Count() > 10)
                   .Select(c => c.Key);

第二:

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

但只是从我的头顶。可能会有一点错误,但这应该可以解决问题。

于 2012-12-05T15:48:50.550 回答