2011-09-19 65 views
0

這是我的代碼;使用Linq to Entities在winforms應用程序中調用組合框,一個組合框依賴於另一個組合框

 comboBoxAdminVisit.DataSource = be.Events; 
     comboBoxAdminVisit.DisplayMember = "EventName"; 


     var fff = (from cc in be.Visitors 
        select cc.Attending).FirstOrDefault(); 

     var ggg = (from xx in be.Events 
        where xx.Id == fff 
        select xx.Id).FirstOrDefault(); 

     if (fff == ggg) 
     { 
      foreach (var name in comboBoxAdminName.Items) 
      { 
       comboBoxAdminName.Items.Add(name); 
      } 

cc.Attending是一個外鍵,它存儲事件tabel的priomary鍵。我想從第一個組合框中選擇一個事件,然後讓第二個組件參與事件。提前致謝!

Events  Visitors 
------  -------- 
Id   Id 
Attendee(FK) Name 
EventName Company 
EventStart Car Reg 
EventEnd  Visiting 
+0

您可以將您的數據圖?這將有助於建立實體之間的一些關係 – Samich

+0

我認爲你在事件和訪問者之間有多對多的關係 – Samich

回答

2

我不知道你的實體的確切結構,但這裏是一個想法如何實現它:

private void Form1_Load(object sender, EventArgs e) 
{ 
    comboBoxAdminVisit.DataSource = be.Events; 
    comboBoxAdminVisit.DisplayMember = "EventName"; 
} 

private void comboBoxAdminVisit_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (comboBoxAdminVisit.SelectedItem != null) 
    { 
     Event selectedEvent = (Event)comboBoxAdminVisit.SelectedItem; 

     var visitors = (from cc in be.Visitors 
         where cc.Attending.Events.Contains(x => x.EnventId = selectedEvent.Id) 
         select cc); 

     comboBoxAdminName.DataSource = visitors; 
     comboBoxAdminName.DisplayMember = "Name"; 
    } 
} 
+0

感謝你的支持,這讓我走上了正軌。它還沒有和數據模型一起工作,但我會改變這種情況,當它完成時,我會標記爲答案,可能明天。再次感謝! – Dan

+0

謝謝,只是不得不改變linq一點,它的工作。我編輯了你的答案以包含正確的linq。 – Dan

相關問題