2014-12-09 73 views
1

我正在學習使用LINQ,EF等。我有2個自動生成的edmx類coursestudent。我寫了一個代碼來訪問course idcourse name。有了這些數據,我也想分別獲取參加課程的students names的數據。以下是我的代碼。訪問一對多關係數據

testEntities1 t = new testEntities1(); 
       var u = (from g in t.courses 
         select new 
         { 
          g.C_Id, 
          g.C_Name, 
          dd = g.student.Select(r=>r.S_Name) 

         }).ToList(); 

現在如何使用/我從中選擇了其中包含有誰報名參加課程的所有學生的名字屬性dd獲取數據。我可以將數據存入變量u。我只是不知道如何處理並從dd獲取數據。請幫忙。以下是獲取course idcourse name的數據的行。我如何獲得學生姓名的數據。所有的

List<course> ui = u.Select(d => new course() { C_Name = d.C_Name, C_Id = d.C_Id }).ToList(); 
+0

你可以發佈課程類型嗎? – 2014-12-09 12:46:30

回答

0

首先沒有必要先獲取數據到anonymous類型,然後將其添加到您的自定義類型course,你可以按照以下提到的直接做到這一點。現在,既然你沒有提到的course的類型,我正在考慮以下兩個possibilites: -

案例1:如果有學生的姓名作爲coursepublic List<string> Students_Enrolled { get; set; }即要取那麼學生名單錄取: -

List<course> u = (from g in t.courses 
        select new course 
        { 
         C_ID = g.C_Id, 
         C_Name = g.C_Name, 
         Students_Enrolled = g.student.Select(r => r.S_Name).ToList() 
        }).ToList(); 

案例2:如果有學生的姓名爲public string Students_Enrolled { get; set; }也就是說,如果你想獲取逗號分隔的學生姓名,那麼你可以這樣做: -

List<course> u = (from g in t.courses 
        select new course 
        { 
         C_ID = g.C_Id, 
         C_Name = g.C_Name, 
         Students_Enrolled = String.Join(",",g.student.Select(r => r.S_Name)) 
        }).ToList(); 
+0

如果您看到我的課程課程,它有ICE選擇。我試過你的第一個選擇,但我得到錯誤,因爲不能從列表轉換爲列表 user2998990 2014-12-10 04:28:52

+0

@ user2998990 - 因爲如果你注意到我在案例1中提到過,我已經考慮到Students_Enrolled是'List ',這就是我問你「課程」的類型。 – 2014-12-10 05:03:57

+0

但現在可以做些什麼?我有一個自動生成的類cousrse,它具有ICollection user2998990 2014-12-10 05:11:11