Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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

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 如何获取EF Framework以通过查询生成此组_Linq_Entity Framework_Linq To Entities - Fatal编程技术网

Linq 如何获取EF Framework以通过查询生成此组

Linq 如何获取EF Framework以通过查询生成此组,linq,entity-framework,linq-to-entities,Linq,Entity Framework,Linq To Entities,我尝试了几种不同的方法,但我对生成的输出查询没有印象。它似乎效率很低。它需要高效,并且不应该将所有行带回应用层 选择年份(日期)作为年份, 月份(日期)为mth, 日期(日期)为dy, 将(*)计数为totalpics 从照片 其中photos.datetake p.datetake new{p.datetake.Year,p.datetake.Month,p.datetake.Day}) .选择(grp=>grp); var results=query.ToList(); 仅选择分组键(grp

我尝试了几种不同的方法,但我对生成的输出查询没有印象。它似乎效率很低。它需要高效,并且不应该将所有行带回应用层

选择年份(日期)作为年份,
月份(日期)为mth,
日期(日期)为dy,
将(*)计数为totalpics
从照片
其中photos.datetake p.datetake new{p.datetake.Year,p.datetake.Month,p.datetake.Day})
.选择(grp=>grp);
var results=query.ToList();

仅选择分组键(
grp.key
):


仅选择分组键(
grp.key
):


您可以通过
grp.key
访问密钥属性,通过
grp.count()
访问计数

var query=ctx.Photos.Where(p=>p.datetake new{p.datetake.Year,p.datetake.Month,p.datetake.Day})
.选择(grp=>new
{ 
grp.Key.Year,
grp.Key.Month,
grp.Key.Day,
Count=grp.Count()
});
var results=query.ToList();

您可以通过
grp.key
访问密钥属性,并通过
grp.count()访问计数

var query=ctx.Photos.Where(p=>p.datetake new{p.datetake.Year,p.datetake.Month,p.datetake.Day})
.选择(grp=>new
{ 
grp.Key.Year,
grp.Key.Month,
grp.Key.Day,
Count=grp.Count()
});
var results=query.ToList();

我会接受这个答案,尽管这不是我所期望的。虽然看起来效率不高,但它确实起到了作用。我在照片表上有一个日期索引。是否可以让它生成组,而不是distinct@palKhoa:当您使用聚合函数(如
Count()
)时,可能
不同的
将消失,并成为一个
分组依据,请参见我上面的编辑。我将接受该答案,尽管它不是我所期望的。虽然看起来效率不高,但它确实起到了作用。我在照片表上有一个日期索引。是否可以让它生成组,而不是distinct@palKhoa:当您使用聚合函数(如
Count()
)时,可能
不同的
将消失并成为一个
分组依据,请参见上面的我的编辑。什么是低效?什么是低效?
var query = ctx.Photos.Where(p => p.DateTaken <= maxCutOffDate)
    .GroupBy(p => new { p.DateTaken.Year, p.DateTaken.Month, p.DateTaken.Day })
    .Select(grp => grp);
var results = query.ToList();
var query = ctx.Photos.Where(p => p.DateTaken <= maxCutOffDate)
    .GroupBy(p => new { p.DateTaken.Year, p.DateTaken.Month, p.DateTaken.Day })
    .Select(grp => grp.Key);
var results = query.ToList();
var query = ctx.Photos.Where(p => p.DateTaken <= maxCutOffDate)
    .GroupBy(p => new { p.DateTaken.Year, p.DateTaken.Month, p.DateTaken.Day })
    .Select(grp => new
    {
        Date = grp.Key,
        TotalPics = grp.Count()
    });
var results = query.ToList();
var query = ctx.Photos.Where(p => p.DateTaken <= maxCutOffDate)
    .GroupBy(p => new { p.DateTaken.Year, p.DateTaken.Month, p.DateTaken.Day })
    .Select(grp => new 
                   { 
                       grp.Key.Year,
                       grp.Key.Month,
                       grp.Key.Day,
                       Count = grp.Count()
                   });
var results = query.ToList();