我在EF7 Beta 8上运行以下代码:
Set<Integer> keepThese = new HashSet<Integer>();
for (int x : sel)
{
keepThese.add(x);
}
for (int i=0 ; i<firstList.size() ; i++)
{
if(keepThese.contains(i))
continue;
else
{
if(secondList.contains(firstList.get(i)))
continue;
else
secondList.add(firstList.get(i));
}
}
执行此代码时,EF会显示警告。
var locationGrops = from l in db.Locations
group l by l.ServiceType into g
select g;
var list = locationGrops.ToList();
查询对我来说似乎很基础,SQL中有GROUP BY。有没有办法让它在服务器上运行?
答案 0 :(得分:4)
此时,EF7不支持group by和大多数子查询。
答案 1 :(得分:1)
您可以使用context.Locations.FromSql(sql).ToList()
确保您的查询在服务器上运行。
答案 2 :(得分:0)
一种方法是使用逻辑创建数据库视图(无论如何,复杂分组可能更好)。
现在使用视图有点骇人听闻,但如果您使用脚手架,这就是我想出的:
How can I create database Views in a scaffolded DbContext in EF7 / Entity Framework Core 1.0
总之,我从DbContext继承,并手动为视图创建实体类。