Я написал следующий запрос для поворота данных путем преобразования строк в столбцы с использованием LINQ:
var query = from p in context.PrivilegesTable
group p by p.Type into g
select new Privileges
{
Type = g.Key,
AllowRead = g.Any(p => p.Seq == 1),
AllowAdd = g.Any(p => p.Seq == 2)
AllowEdit = g.Any(p => p.Seq == 3)
AllowDelete = g.Any(p => p.Seq == 4)
};
Я думаю, что есть лучший способ реализовать это.для получения более подробной информации прочитайте следующее:
У меня есть следующая таблица привилегий:
Type Seq
1 1
2 1
2 2
3 1
3 2
3 3
И следующий класс привилегий:
class Privileges
{
public int ID { get; set; }
public Type Type { get; set;}
public int AllowRead { get; set; } // when sequence = 1
public int AllowAdd { get; set; } // when sequence = 2
public int AllowEdit { get; set; } // when sequence = 3
public int AllowDelete { get; set; } // when sequence = 4
}
Теперь я хочусоздайте List<Prvileges>
, используя LINQ, чтобы получить следующий результат:
[Type, AllowRead, AllowAdd, AllowEdit, AllowDelete]
[1, True, False, False, False]
[2, True, True, False, False]
[3, True, True, True, False]
Мой запрос плохо влияет на производительность?Есть ли лучший?