Entity Framework T-Sql "имеющий" эквивалентный

Как я могу написать запрос linq к объектам, включающий предложение о наличии?

Например:

SELECT State.Name, Count(*) FROM State
INNER JOIN StateOwner ON State.StateID = StateOwner.StateID
GROUP BY State.StateID
HAVING Count(*) > 1

Ответ 1

Любая причина не просто использовать предложение where на результат?

var query = from state in states
            join stateowner in stateowners
              on state.stateid equals stateowner.stateid
            group state.Name by state.stateid into grouped
            where grouped.Count() > 1
            select new { Name = grouped.Key, grouped.Count() };

Ответ 2

Я считаю, что вы можете использовать GroupBy, за которым следует предложение Where, и оно переведет его как Having. Не совсем уверен, хотя.

Ответ 3

Если вы хотите сравнить переменную, которой нет в группе, по (например, возрасту), то это будет:

var duplicated = (
                  from q1 in db.table1
                  where (q1.age >= 10 )
                  group q1 by new { q1.firstName, q1.lastName } into grp
                  where (grp.Count() > 1 )
                  select new 
                   {
                     firstName= grp.Key.firstName,
                     lastName = grp.Key.lastName,
                   }
                 );