LightSwitchで次のように苦労します。LightSwitchエンティティ:外部キープロパティの値を更新する
WorkEmail
などの分野のために今
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];
}
:私はそうのように、partial void tblStaffExtendeds_Updating(tblStaffExtended entity)
中に実体を「横取り」して、私たちの地元のldap
からいくつかのデータを引き出し、特定の値にエンティティのプロパティのいずれかを設定しようとしていますWorkPhone
これらのプロパティはちょうどstrings
であり、それはLDAP
から取得しているので、これは問題なく動作します。
しかし、私はStaffType
を設定していますが、それは管理テーブルエントリへの参照ですか? LDAPはAdminテーブルの説明と一致するstring
を返しますが、正しいIDに設定する必要があるエンティティを想定しています。
管理テーブルから「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();
: