문제

.NET의 관련없는 테이블에 바인딩하는 가장 좋은 방법을 찾으려고 노력하고 있습니다. 여러 관련 테이블과 몇 개의 관련 테이블이 포함 된 Ado .NET Entity 데이터 모델이 있습니다.

예를 들어, 다음 테이블이 있습니다 : 열이 포함 된 key_value_lkp lkp_text, lkp_value 및 lkp_type request_det with columns requestNo, userId 및 req_status user_det, userName, userId.

Request_det은 key_value_lkp와 관련이 있습니다.

모델을 빌드 할 때 3 개의 테이블과 user_det이 request_det과 관련이 있다는 사실을 얻습니다.

FormView를 사용하여 요청 데이터 (request_det entityDatasource)에 바인딩하고 관련 테이블에 대한 요청에 대한 관련 정보를 볼 수 있습니다 (사용자 이름, requestNo이지만 req_status의 숫자 값을 얻습니다.

내가하고 싶은 것은 lkp_text 값을 검색하는 것입니다. 그러나 key_value_lkp 테이블 사이에 정의 된 관계가없는 것을 보는 것은 EntityDatasource에 "포함"속성이 작동하지 않습니다.

두 번째 EntityDataSource를 WebForm에 추가하여 key_value_lkp 테이블에 연결하고 where = "it.lkp_type = 'request_criticality'"를 추가했습니다. 나는 이것을 드롭 다운에 바인딩 할 수 있고 선택한 값을 설정 한 코드에서 이것을 드롭 다운이 아닌 레이블에 바인딩되기를 원합니다.

따라서 request_det entitydatasource로 바인딩 된 양식보기 내에서 다른 EntityDatasource에 lable을 바인딩 할 수 있습니까?

미리 감사합니다, -j

도움이 되었습니까?

해결책

Entity SQL 에서이 작업을 수행하는 방법을 찾았습니다. 아래는 비슷한 예입니다.

string eSql = @"SELECT VALUE LKP FROM
Key_Value_LKP as LKP where
LKP.LKP_TYPE='REQUEST_CRITICALITY' and LKP.LkpValue=@lkpValue";

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;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top