Я хочу выполнить группировку в ядре Entity Framework без повторяющихся групп.
Предположим, у меня есть два столбца
Column A Column B
1 1
2 1
2 1
4 5
5 4
Если группировка выполняется для двух столбцов EntityЯдро фреймворка: результат довольно очевиден.
Column A Column B
1 1
2 1
4 5
5 4
Но я хочу создать группу, которая будет работать в обоих направлениях: A-> B и B-> A, поэтому результат будет
Column A Column B
1 1
2 1
5 4
Есть идеи, как это сделать в Entity Framework Core?
Первоначально я пытался использовать Union
var user = _context.Transactions
.Where(p => !p.IsDeleted && (p.ReceiverUserId == userId) &&
(p.SenderUserId != null))
.Include(p => p.SenderUser)
.GroupBy(p => p.SenderUserId)
.Select(p => new TempModel { Id = p.FirstOrDefault().SenderUser.Id, User = p.FirstOrDefault().SenderUser, CreatedDate = p.FirstOrDefault().CreatedDate });
var user2 = _context.Transactions
.Where(p => !p.IsDeleted && (p.SenderUserId == userId) &&
(p.ReceiverUserId != null))
.Include(p => p.ReceiverUser)
.GroupBy(p => p.ReceiverUserId)
.Select(p => new TempModel { Id = p.FirstOrDefault().ReceiverUser.Id, User = p.FirstOrDefault().ReceiverUser, CreatedDate = p.FirstOrDefault().CreatedDate});
var finalQuery = user.Union(user2);
var finalQuery2 = finalQuery.GroupBy(p => p.Id);
var finalQuery1 = finalQuery2.OrderByDescending(p => p.FirstOrDefault().CreatedDate);
finalQuery.GroupBy(p => p.Id); <- this line gives error