【问题标题】:How to use Pivot table with Entity Framework?如何在实体框架中使用数据透视表?
【发布时间】:2016-12-24 17:42:35
【问题描述】:

我有一张这样的桌子:

我想使用 EF,它将使用一个存储过程,该过程将返回一个 unpivot 结果集。但问题是,我将如何对其建模,以便我可以在 RIA 服务中使用它来将数据推送到客户端。我想要这样的东西

public class RegionModel {
    public string Name { get; set; }
    public List<string> Quarter { get; set; }
    public List<int> Sales { get; set; }
}

同样会有QuarterModel。根据用户选择,我可以返回正确的集合进行绑定。目前我们已经通过在客户端创建动态类来解决这个问题。但有兴趣知道是否有可能在没有客户端代码的情况下实现这一点,并利用 EF 和 SQL Server unpivot。

【问题讨论】:

  • 我刚刚看到stackoverflow.com/questions/6160817/… 并且基于解决方案,没有直接的方法来为 Pivot 建模。希望它在 4.0 中有所改变。
  • 透视数据是显示逻辑。它在数据层中没有位置。
  • @cadrell0 它是许多情况下的数据逻辑。例如,当您需要按数据透视列进行过滤和/或排序时。

标签: sql silverlight entity-framework-4


【解决方案1】:

答案:

枢轴功能可以将对象集合转换为新的对象集合,从而使原始层次结构变平。 在以下示例中,Pivot 扩展方法用于转换集合,如下所示:

使用以下链接:

LINQ Extensions Library (Pivot Extensions)

使用以下行来透视数据:

contacts.Pivot(X => X.Phones, X => X.PhoneType, X => string.Concat("(", X.AreaCode, ") ", X.PhoneNumber), true)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    • 2019-10-29
    • 2023-02-22
    相关资源
    最近更新 更多