Я столкнулся с этой проблемой, когда делал группу с помощью сущности.Проблема EF с группировкой на сервере
.Net: 4,5, EF: 5,0, базы данных: Oracle
Моя проблема была, когда я группируя на сервере и получать обратно данные, сгруппированные данные (список лиц) возвращается первая запись через и более для всех сгруппированных данных, но группа KEY была правильной.
Если я не делаю группу по записям, как ожидалось, но у меня есть некоторые требования к группировке, и мое обходное решение ... да, не заставляя меня чувствовать, что хорошо, и код должен работать ... но он делает не.
x.D = остаток строки является целым числом/комбинацией строк.
Вот код, который не работает:
db.ENTITY_NAME
.Where(x =>
wantedGs.Contains(x.G) &&
wantedAs.Contains(x.A)
)
.GroupBy(x => x.D)
.ToList()
.Select(x => x.FirstOrDefault())
.Select(x => new MyEntity
{
A = x.A,
B = x.B,
C = x.C,
E = x.E,
D = x.D,
F = x.F,
G = x.G
})
.ToList();
Вот обходной путь мне удалось сделать то, что я хочу:
db.ENTITY_NAME
.Where(x =>
wantedGs.Contains(x.G) &&
wantedAs.Contains(x.A)
)
.Select(x => new
{
x.A,
x.B,
x.C,
x.D,
x.E,
x.F,
x.G
})
.ToList()
.GroupBy(x => x.D)
.Select(x => x.FirstOrDefault())
.Select(x => new MyEntity
{
A = x.A,
B = x.B,
C = x.C,
E = x.E,
D = x.D,
F = x.F,
G = x.G
})
.ToList();
Каков результат, если вы только выполняете 'GroupBy (x => x.D)' первого запроса? –