2012-03-15 30 views
0

これを実現するために、私は可能な限り解決しようとしています。エンティティフレームワークに関連付けられたオブジェクトをバインドする方法

Iは、2つの関連するエンティティ(2接続テーブル)を有するEFモデルにおいて

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

どのようなエラーが表示されますか? –

+0

これはエラーです。DataBinding: 'SnT.eGovernment.DataModel.InstitutionEmployeeProcessingDepartment'には名前 'ProcessingDepartment.Name'のプロパティが含まれていません。私がちょうどlbProcessingDepartment.DataTextField = "ProcessingDepartment"を離れるとき。それは動作しますが、オブジェクトの名前空間だけを表示します。 – nemke

+0

ASP.Net、Silverlight、MVC、Winform?あなたは何を使っていますか?これは私たちがあなたを助けるのに役立ちます。 –

答えて

0

これは私が達成できた解決策の1つですが、私はそれをまったく気に入らないのです。 質問の2番目のコメントで、私はオブジェクト名のスペースを表示できたことに気付きました。そこで、このコードをProcessingDepartmentクラス内のEF csファイルに追加しました。それは単に、このオプションlbProcessingDepartment.DataTextField = "ProcessingDepartment";

で、toString()メソッド

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

をオーバーライドして、これは動作しますが、私にはハックのように見えます。

関連する問題