2016-09-07 61 views
0

我已經看過其他帖子,但無法找到我需要的上下文。 當我不嘗試使用linq添加groupby總和時,我的程序完美運行。我使用MVVM從存儲過程中提取數據。我的模型是從存儲過程的Linq GroupBy和MVVM

public class RelationshipExperience 
{ 
    [Key, Column(Order = 1)] 
    public double Earned { get; set; } 

    [Key, Column(Order = 2)] 
    public double IncLoss { get; set; } 

    [Key, Column(Order = 3)] 
    public double Expenses { get; set; } 

    [Key, Column(Order = 4)] 
    public double Balance { get; set; } 

    [Key, Column(Order = 5)] 
    public string UWYear { get; set; } 

    public int ProgramID { get; set; } 

    public int InProgramChain { get; set; } 
} 

我當前的工作方法是

public IList<RelationshipExperience> sp_GetRelationshipExperience(int programId) 
{ 
    return _CatContext.sp_GetRelationshipExperience(programId).ToList(); 
} 

我想總結一下我的全部使用(掙,IncLoss,支出,餘額)列和GROUPBY UWYear。這是我的嘗試

public IList<RelationshipExperience> sp_GetRelationshipExperience(int programId) 
    { 
     return _CatContext.sp_GetRelationshipExperience(programId) 
     .GroupBy(l => l.UWYear) 
     .Select(r => new RelationshipExperience 
     { 
      UWYear = r.Key, 
      Earned = r.Sum(c => c.Earned), 
      IncLoss = r.Sum(c => c.IncLoss), 
      Expenses = r.Sum(c => c.Expenses), 
      Balance = r.Sum(c => c.Balance) 

     }).ToList(); 
    } 

我在做什麼錯? 在此先感謝

+4

您有什麼問題? – juharr

+0

沒有數字顯示。我找到了解決方案 – James

回答

0
public IList<RelationshipExperience> sp_GetRelationshipExperience(int programId, bool AllPrograms) 
    { 
      var output = _CatContext.sp_GetRelationshipExperience(programId) 
.Where(l => l.InProgramChain == 1) 
.GroupBy(l => l.UWYear) 
.Select(r => new RelationshipExperience 
{ 
    UWYear = r.Key, 
    Earned = r.Sum(c => c.Earned), 
    IncLoss = r.Sum(c => c.IncLoss), 
    Expenses = r.Sum(c => c.Expenses), 
    Balance = r.Sum(c => c.Balance), 

}).ToList(); 

      return output; 

     } 

這個工程,結果顯示在數據網格我

+0

這有什麼幫助?我不明白這個問題或答案對其他人是否有用。 – juharr