2011-12-06 5 views
1

LightSwitch에서 다음 작업을 수행하는 데 어려움을 겪고 있습니다. 그래서처럼 partial void tblStaffExtendeds_Updating(tblStaffExtended entity) 동안 개체를 '차단'하고 우리 지역 ldap에서 일부 데이터를 당겨 특정 값으로 개체의 속성 중 하나를 설정하려고 :LightSwitch Entity : 외래 키 속성 값 업데이트

partial void tblStaffExtendeds_Updating(tblStaffExtended entity) 
    { 

     string ldapPath = @"LDAP://DC=myLDAP,DC=myLDAP";    
     string user = entity.GPEmployeeID.ToString(); 
     string[] props = { 
          ActiveDirectoryInfo.strings.DISPLAYNAME, ActiveDirectoryInfo.strings.EMAIL, 
          ActiveDirectoryInfo.strings.LOGONALIAS, ActiveDirectoryInfo.strings.PHONE, 
          ActiveDirectoryInfo.strings.OFFICE, ActiveDirectoryInfo.strings.TITLE, 
          ActiveDirectoryInfo.strings.GPEMPLOYEEID 
          }; 

     var propResults = ActiveDirectoryInfo.UserPropertySearchByGPEmpID(user, ldapPath, props); 

     entity.tblAdminStaffType.StaffType = propResults[ActiveDirectoryInfo.strings.TITLE]; 
     entity.WorkEmail = propResults[ActiveDirectoryInfo.strings.EMAIL]; 
     entity.UserID = propResults[ActiveDirectoryInfo.strings.LOGONALIAS]; 
     entity.WorkPhone = propResults[ActiveDirectoryInfo.strings.PHONE]; 
    } 

을 지금 WorkEmail 같은 필드 그리고 WorkPhone이 속성은 단지 strings이고 이것이 내가 LDAP에서 얻은 것입니다.
그러나 Admin 테이블 항목에 대한 참조 인 StaffType을 설정해야합니까? LDAP은 Admin 테이블의 설명과 일치하는 string을 반환하지만 올바른 ID로 설정해야하는 Entity에서는 가정합니다.

"Look Up"방법을 사용하여 설명을 내 String에서 LDAP으로 일치시켜 관리자 테이블에서 ID를 찾는 방법이 부족합니까? StaffTypes 표는 직원을 보유하고 있음을, 나는, 데이터 소스가 ApplicationData합니다 (LS의 기본 이름)라고 있으리라 믿고있어이 예에서는

string title = propResults[ActiveDirectoryInfo.strings.TITLE]; 

var qryAdminStaffType = from st in DataWorkspace.ApplicationData.StaffTypes 
         where st.Title == title 
         select st; 

entity.tblAdminStaffType.StaffType = qryAdminStaffType.FirstOrDefault(); 

:

답변

1

이 솔루션은 다음과 같이 보일 것이다 유형이 일치하고 제목이입니다. 제목과 일치하는 것이 없으면 FirstOrDefalt()는 null을 반환합니다.