2012-03-15 48 views
0

這是我試圖甚至可能實現的解決方案。如何綁定實體框架關聯的對象

在EF模型我有兩個相關聯的實體(2個連接表)

InstitutionEmployeeProcessingDepartment(InstitutionEmployeeProcessingDepartementId,ProcessingDepartmentId,...)
ProcessingDepartment(ProcessingDepartmentId,...)

我將這個綁定到某個列表框。是否有可能做這樣的事情在EF

List<InstitutionEmployeeProcessingDepartment> institutionEmployeeProcessingDepartments = institutionEmployee.InstitutionEmployeeProcessingDepartments.ToList(); 
lbProcessingDepartment.DataSource = institutionEmployeeProcessingDepartments; 
lbProcessingDepartment.DataValueField = "InstitutionEmployeeProcessingDepartementId"; 
lbProcessingDepartment.DataTextField = "ProcessingDepartment.Name"; 

這是關鍵點lbProcessingDepartment.DataTextField =「ProcessingDepartment.Name」;

我得到的錯誤是DataBinding:'DataModel.InstitutionEmployeeProcessingDepartment'不包含名爲'ProcessingDepartment.Name'的屬性。

我包括這個表加載.Include()方法。

+0

你會得到什麼錯誤? – 2012-03-15 15:28:06

+0

這是錯誤DataBinding:'SnT.eGovernment.DataModel.InstitutionEmployeeProcessingDepartment'不包含名稱爲'ProcessingDepartment.Name'的屬性。當我離開只是lbProcessingDepartment.DataTextField =「ProcessingDepartment」;比它的工作,但只顯示對象的名稱空間。 – nemke 2012-03-15 15:29:47

+0

ASP.Net,Silverlight,MVC,Winform?你在用什麼?這將幫助我們幫助你。 – 2012-03-15 15:36:08

回答

0

這是我設法實現的一個解決方案,但我根本不喜歡它。 因爲在我的問題的第二個評論中,我注意到我能夠顯示對象名稱空間。所以我將此代碼添加到ProcessingDepartment類中的EF cs文件中。它只是覆蓋toString()方法

public override String ToString() 
    { 
     return this.Name; 
    } 

使用此選項lbProcessingDepartment.DataTextField = "ProcessingDepartment";

和工作原理,但看起來像一個黑客給我。