2016-09-07 2 views
0

Я просмотрел другие сообщения, но не смог найти то, что мне нужно для моего контекста. Моя программа отлично работает, когда я не пытаюсь добавить в группу с помощью linq. Я извлекаю данные из хранимой процедуры, используя MVVM. Моя модельLinq GroupBy и Sum для 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; 

     } 

это работает, показывает результаты в моей DataGrid

+0

Как именно это помогло? Я не вижу, как этот вопрос или ответ когда-либо будет полезен для кого-либо еще. – juharr