2009-06-25 9 views
0

.NETの無関係なテーブルにバインドする最良の方法を理解しようとしています。私はいくつかの関連するテーブルといくつかの無関係なテーブルが含まれているADO .Net Entityデータモデルを持っています。エンティティモデルとバインディング関連のないテーブルへのラベル

例えば、私は、次のテーブルがある:カラムREQUESTNO、USERID、および列USERNAMEとREQ_STATUS USER_DET持つ列LKP_TEXT、LKP_VALUEとLKP_TYPE REQUEST_DETと KEY_VALUE_LKPは、USERID

REQUEST_DETはKEY_VALUE_LKP場合REQ_STATUSに関連しています= LKP_VALUEとLKP_TYPE =「REQUEST_CRITICALITY」が、データベース REQUEST_DETで定義されていないこの関係はあるがUSERID = USERID

私は私のモデルを構築するとき、私は3つのテーブルを取得し、データベースに定義されたUSER_DETとの外部キー関係を持っており、 USER_DETがREQUEST_DETに関連しているという事実

FORMVIEWの使用私はリクエストデータ(REQUEST_DET EntityDataSource)にバインドし、関連テーブル(USERNAME、REQUESTNO)の要求に関する関連情報を見ることができますが、 REQ_STATUS。

私がしたいのは、LKP_TEXTの値を取得することですが、KEY_VALUE_LKPテーブルの間に関係が定義されていないことがわかるため、EntityDataSourceの「Include」属性は機能しません。

Webフォームに2番目のEntityDataSourceを追加し、それをKEY_VALUE_LKPテーブルにリンクし、Where = "it.LKP_TYPE = 'REQUEST_CRITICALITY'"を追加しました。私はこれをDropDownにバインドすることができ、コードの背後には選択した値を設定することができますが、これをドロップダウンではなくLabelにバインドします。

したがって、REQUEST_DETにバインドされたフォームビューからEntityDataSourceを使用して、lableを別のEntityDataSourceにバインドできますか?

事前のおかげで、 -J

答えて

0

私は以下、エンティティSQLでこれを行うための方法は、同様の例であるが見つかりました:

string eSql = @"SELECT VALUE LKP FROM 
Key_Value_LKP as LKP where 
LKP.LKP_TYPE='REQUEST_CRITICALITY' and [email protected]"; 

ObjectQuery<Key_Value_LKP> statusQuery = ctx.CreateQuery<Key_Value_LKP>(eSql); 
ObjectParameter lkpValue = new ObjectParameter("lkpValue",lkpValue.ToString()); 
statusQuery.Parameters.Add(lkpValue); 

string REQ_STATUS= statusQuery.First().LkpText; 

Label lState = (Label)fvRun.Row.FindControl("REQ_STATUSLabel"); 

//set state to exisitng run state 
lState.Text = REQ_STATUS; 
関連する問題