我有一个必须解决的问题。我可以使用实体框架将下面的结果集转换为可编辑的数据透视表吗?我还想将数据保留在上下文中。我的数据是这样的:
在操作结束时,我希望看到的结果是: 请注意,创建为数据透视表的表应该是可编辑的。
我有一个必须解决的问题。我可以使用实体框架将下面的结果集转换为可编辑的数据透视表吗?我还想将数据保留在上下文中。我的数据是这样的:
在操作结束时,我希望看到的结果是: 请注意,创建为数据透视表的表应该是可编辑的。
实体框架不支持以数据透视格式显示数据。因此,唯一的方法是 - 创建一个属性与结果集相同的类
public class Orders
{
public int OrderId{get;set;}
public int OrderShippingId{get;set;}
public int ColorId{get;set;}
[DisplayName("11")]
public int Sizeid11 { get; set; }
[DisplayName("12")]
public int Sizeid12 { get; set; }
[DisplayName("13")]
public int Sizeid13 { get; set; }
[DisplayName("14")]
public int Sizeid14 { get; set; }
[DisplayName("15")]
public int Sizeid15 { get; set; }
[DisplayName("16")]
public int Sizeid16 { get; set; }
[DisplayName("17")]
public int Sizeid17 { get; set; }
}
使用 LINQ 查询将来自 EF 的数据添加到 List 中 - private OrderEntities ctx = new OrderEntities();
// A Linq to EF which creates a List of concreate class called IsoPivot.
private List<Orders> queryResults =
(from ord in ctx.Orders
orderby ord.Colorid ascending
group ord by ord.OrderId
into ordGroup
select new Orders()
{
OrderId = ordGroup.Key,
OrderShippingId= ordGroup.OrderShippingId,
ColorId=ordGroup.ColorId,
Sizeid11=ordGroup.where(j=>j.Sizeid==11).sum(j=>j.Quantity)
Sizeid12=ordGroup.where(j=>j.Sizeid==12).sum(j=>j.Quantity)
Sizeid13=ordGroup.where(j=>j.Sizeid==13).sum(j=>j.Quantity)
Sizeid14=ordGroup.where(j=>j.Sizeid==14).sum(j=>j.Quantity)
Sizeid15=ordGroup.where(j=>j.Sizeid==15).sum(j=>j.Quantity)
Sizeid16=ordGroup.where(j=>j.Sizeid==16).sum(j=>j.Quantity)
Sizeid17=ordGroup.where(j=>j.Sizeid==17).sum(j=>j.Quantity)
}).ToList();
}
这是在可编辑字段中显示列表数据的方式。
为了进行编辑,您可以通过单击按钮提交列表中的更改并将更改提交回 EF。