Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq 实体框架T-Sql“;拥有;相等的_Linq_Entity Framework_Linq To Entities - Fatal编程技术网

Linq 实体框架T-Sql“;拥有;相等的

Linq 实体框架T-Sql“;拥有;相等的,linq,entity-framework,linq-to-entities,Linq,Entity Framework,Linq To Entities,如何编写包含having子句的linq到实体查询 例如: SELECT State.Name, Count(*) FROM State INNER JOIN StateOwner ON State.StateID = StateOwner.StateID GROUP BY State.StateID HAVING Count(*) > 1 有没有理由不在结果中使用where子句 var query = from state in states join state

如何编写包含having子句的linq到实体查询

例如:

SELECT State.Name, Count(*) FROM State
INNER JOIN StateOwner ON State.StateID = StateOwner.StateID
GROUP BY State.StateID
HAVING Count(*) > 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() };

我相信您可以使用
GroupBy
后跟
Where
子句,并将其翻译为
Having
。但不完全确定。

如果要比较不在组中的变量by(例如:age),则应为:

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,
                   }
                 );

任何()都将用于Count()>0,而不是Count()>1@Craig:如果它是
Count()>0
,那么就根本不需要限制,因为它是一个内部连接…对于MySql,它将导致使用外部WHERE进行内部选择,而不是使用。因此,它将导致性能问题。