2009-07-10 5 views
13

Как вы группируете несколько столбцов в LINQ TO SQL?Как вы группируете по нескольким столбцам в LINQ TO SQL?

db.Table.GroupBy(a => a.column1.ToString() + a.column2.ToString()) 

Это кажется уродливым и с плохими характеристиками, и я даже не знаю, работает ли оно. Каков правильный способ сделать это?

ответ

16

попытка группировки анонимного типа:

group by new { item.Col1, item.Col2 } 

тогда вы сможете получить доступ к Key.Col1 и т.д.

+0

ли это работает? AnonTypes автоматически реализует Equals и GetHashCode, поэтому вам не нужно беспокоиться об этом? –

+0

Просто протестировал его, и вы правы. Тестовый код: var a = new {A = 1, B = 2}; var b = new {A = 1, B = 2}; var c = new {A = 1, B = 3}; Assert.AreEqual (a, b); Assert.AreNotEqual (a, c); –

+5

Да, это работает, это официальный путь. вот хорошая ссылка: http://msdn.microsoft.com/en-us/vcsharp/aa336746.aspx –

Смежные вопросы