2010-01-12 78 views
1
 List<NastavaIzvjestaj> nastava_izvjestaj = new List<NastavaIzvjestaj>(); 
     var data_context = new DataEvidencijaDataContext(); 
     int pomSum = 0; 

     var prisustvo = (from j in data_context.nastava_prisustvos 
       select j.br_indexa).Distinct(); 
     var lista = prisustvo.ToList(); 

     foreach (var i in prisustvo) 
     { 
      var pom = from k in data_context.nastava_prisustvos 

         where k.br_indexa == i 
         select k.broj_casova; 

      pomSum = pom.Sum(); 

      nastava_izvjestaj.Add(new NastavaIzvjestaj 
      { 
       br_indexa = i.br_indexa, 
       naziv = "mjau", 
       ime = "First Name", 
       prezime = "Last Name", 
       tip_nastave = "XXX", 
       procenat_prisustva =pomSum 
      }); 
     } 

      string reportPath = Server.MapPath("NastavaPrikaz.rpt"); 

      ObjektniNastavaIzvjestaj = new ReportDocument(); 
      ObjektniNastavaIzvjestaj.Load(reportPath); 
      ObjektniNastavaIzvjestaj.SetDataSource(nastava_izvjestaj); 
      CrystalReportViewer1.ReportSource = ObjektniNastavaIzvjestaj; 

此代碼返回是這樣的:LINQ選擇問題(不同的)

  Br_idexa  Ime   Prezime   Procenat 

      185    First Name Last Name   30 
      185    First Name Last Name   30 
      185    First Name Last Name   30 
      185    First Name Last Name   30 

我怎麼只有一排:

  185    First Name Last Name   30 

問題解決

+0

你確定你的j的行是(在他們的所有字段)實際上不同?您可能需要投射出j.ID,j.SomethingElse,以獲得你想要「獨特」的領域。 – Paddy 2010-01-12 14:00:51

+0

我需要不同的br_indexa,但不知道如何 – Ognjen 2010-01-12 14:07:51

回答

4

在您的查詢,您可以選擇您想在選擇不同的列:

var prisustvo = (from j in data_context.nastava_prisustvos 
        select j.br_indexa).Distinct(); 
+0

我更新了代碼並寫入了新問題 – Ognjen 2010-01-12 17:25:39

1

嘗試增加你的NastavaIzvjestaj的部分班級:

namespace ... 
public partial class NastavaIzvjestaj 
{ 
    public override bool Equals(object o) 
    { 
     if (o == null || !(o is NastavaIzvjestaj)) 
     return false; 

     return this.Br_idexa == o.Br_idexa; 
    } 

    public override int GetHashCode() 
    { 
     return this.Br_idexa.GetHashCode(); 
    } 
} 

規定Br_idexa是您唯一的標識符和pk。

+0

我在發佈的代碼中如何使用它 – Ognjen 2010-01-12 14:20:39

+0

在與設計器相同的項目中添加一個名爲NastavaIzvjestaj.cs的新類;每個LINQ對象都是一個部分類,partial關鍵字允許您對類定義進行「附加」操作。 命名空間...意味着我不知道LINQ to SQL orm在哪個命名空間中,因此在那裏提供了相同的命名空間。 – 2010-01-12 16:41:59