EF7和GroupBy()无法翻译

时间:2015-10-21 18:25:42

标签: asp.net-core-mvc entity-framework-core

我在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。有没有办法让它在服务器上运行?

3 个答案:

答案 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继承,并手动为视图创建实体类。