у меня есть список заказов и нужно создавать группы аналогичных заказов эффективным способом (желательно без отходили все заказы и сравнения вручную)Linq к Entities группировки по нескольким полям с оператором или
Каждый заказ имеет идент и адрес электронной почты с дополнительными полями Почтовый индекс и страна
Так мне нужно, чтобы создать группы по следующим правилам
Если заказ имеет тот же (USERID или адрес электронной почты) и (postco де и страна) место в группе
Учитывая следующий объект и данные
public class Order
{
public int UserId { get; set; }
public int OrderId { get; set; }
public string Email { get; set; }
public int PostCode { get; set; }
public string Country { get; set; }
}
Пример данных
OrderId UserId Email PostCode Country
1 1 blah1 111 au
2 1 blah2 111 au
3 2 blah1 111 au
4 2 blah2 111 au
5 3 blah3 111 nz
6 3 blah3 111 nz
Пример Результаты
Group 1
1 1 blah1 111 au
2 1 blah2 111 au
3 2 blah1 111 au
4 2 blah2 111 au
Group 2
5 3 blah3 111 nz
6 3 blah3 111 nz
Единственный способ я могу кажется, думают об этом через ручную итерацию n в памяти
Возможно ли это связать с Linq объектами?
Update
После изучения этого на некоторое время, я думаю, что я пришел к выводу, что единственный способ добиться того, чего я хочу, это возможно сделать 2 groupbys и вручную объединить их в памяти
Update2
Думая об этом логически не существует, казалось бы, не элегантное решение этой проблемы в LINQ и, возможно, потребуется сделать с SQL и КТР или каким-либо другим рекурсивного решения. Ill отметить близкое решение как правильное
Это самое близкое решение, однако я думаю, что для правильной работы это должно быть несколько иначе. благодаря –