【发布时间】:2011-02-07 16:58:38
【问题描述】:
我编写了以下查询通过使用 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
还有以下Privileges类:
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
}
现在,我想使用 LINQ 创建一个List<Prvileges> 以获得以下结果:
[类型、AllowRead、AllowAdd、AllowEdit、AllowDelete]
[1,真,假,假,假]
[2、真、真、假、假]
[3、真、真、真、假]
我的查询对性能不利吗? 有更好的吗?
【问题讨论】:
标签: c# linq linq-to-sql