2009-06-25 5 views
0

Ich versuche, den besten Weg zu finden, um an eine nicht verwandte Tabelle in .Net zu binden. Ich habe ein ADO .Net-Entity-Datenmodell, das mehrere verwandte Tabellen und einige nicht verwandte Tabellen enthält.Entity Model und Bindung Label zu einer nicht verwandten Tabelle

Zum Beispiel habe ich die folgenden Tabellen: KEY_VALUE_LKP mit Spalten LKP_TEXT, LKP_VALUE und LKP_TYPE REQUEST_DET mit Säulen REQUESTNO, USERID und REQ_STATUS USER_DET mit Säulen USERNAME- USERID

REQUEST_DET verwendet ist, wo REQ_STATUS KEY_VALUE_LKP = LKP_VALUE und LKP_TYPE = „REQUEST_CRITICALITY“ aber diese Beziehung nicht in der Datenbank definiert REQUEST_DET hat mit USER_DET definiert in der Datenbank, in USERID = USERID

eine Fremdschlüsselbeziehung ist, wenn ich mein Modell baue ich die drei Tabellen und Die Tatsache, dass USER_DET mit REQUEST_DET verwandt ist

FORMVIEW binde ich an die Request-Daten (REQUEST_DET EntityDataSource) und kann die relevanten Informationen für die Anfrage für die zugehörigen Tabellen sehen (USERNAME, REQUESTNO, aber ich bekomme den numerischen Wert für die REQ_STATUS.

Ich möchte den Wert LKP_TEXT abrufen, aber da keine Beziehung zwischen der Tabelle KEY_VALUE_LKP definiert ist, wird das Attribut "Include" für die EntityDataSource nicht funktionieren.

Ich fügte der WebForm eine zweite EntityDataSource hinzu und verknüpfte sie mit der KEY_VALUE_LKP-Tabelle und fügte hinzu, wo where = "it.LKP_TYPE = 'REQUEST_CRITICALITY'". Ich weiß, dass ich dies an ein DropDown binden konnte und im Code dahinter den ausgewählten Wert festlegte, aber ich möchte, dass dieser an ein Label gebunden ist, nicht an ein Drop-down.

Also kann ich aus einer Formularansicht, die an REQUEST_DET EntityDataSource gebunden ist, ein Label an eine andere EntityDataSource binden?

Vielen Dank im Voraus, -J

Antwort

0

ich eine Methode, dies zu tun mit Entity SQL, ist ein ähnliches Beispiel wie folgt zu finden:

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;