答案 0 :(得分:3)
如果您想拥有不同的国家/地区,可以使用后续选择来选择每个IGrouping<int,Country>
中的第一个国家/地区:
public async Task<IEnumerable<Country>> Search(int userId)
{
return await _db.Cities
.Include(ci => ci.States.Country)
.Select(ci => ci.States.Country)
.OrderBy(co => co.CountryName)
.GroupBy(co=>co.pk_CountryId)
.Select(co => co.FirstOrDefault())
.ToListAsync();
}
另外还有一点注意事项,Include
在这里是必要的,如果您要返回States
并希望其Country
属性,那么急切加载这些国家/地区只会非常有用被填充。 Select
确保您抓取Country
,您甚至不再从数据库中获取状态。