我正在使用实体框架,并且正在使用Group By子句查询数据。在分组依据中,必须使用多个列。一些列可以为空。问题是,返回时它具有所有正确的组计数,但没有向组添加任何内容。因此,该组是一个由0个项目组成的组。这是下面的代码。
using (_context = new DbContext())
{
var groups = await _context.vw_PersonItem
.AsExpandable()
.Where(x => x.PersonName != "")
.GroupBy(x => new
{
x.PersonName,
x.Addressline1,
x.State,
x.Zip,
x.FavoriteColor //< This Can Be Null
})
.ToListAsync();
int uniqueCount = 1;
foreach (var grp in groups) // < It has groups with 0 items
{
uniqueCount++;
}
};
它不会引发错误,并且确实会对分组项目的数量进行计数,但是,如果在“分组依据”字段之一中找到空值,则该组的计数为0?
有什么建议吗?
答案 0 :(得分:2)
例如:
createStackNavigator({
screenName:
{ screen: screenName },
},
{defaultStackNavigationOptions:{
header: () => null //this in the screen where you want to hide the header
}
}
)
仅修改答案即可添加其他语法选项
.GroupBy(x => x?.FavoriteColor ?? -1)
答案 1 :(得分:0)
我对此进行了更多的研究,最终发现0项分组的问题,最终导致使用空值对对象进行分组,但是幕后的联接却使用内部联接。因此,它将创建适当的数字组,但不会因为数据库上的参照完整性而没有填充它们。我最终为此创建了一个具有适当关系的视图,并按照下面的建议处理了空值后,就可以使用