0
LINQ를 사용하여 LEFT JOIN에 JOIN을 사용하여 현재 코드를 변환하려고합니다. 이 LEFT JOIN (LINQ 포함)은 NULL 참조 예외를 생성합니다.
LEFT로 변환 할 내 시도를 내가 SingleOrDefault 및 FirstOrDefault와 I를 시도 How do you perform a left outer join using linq extension methods
//Unassigned
editSecRoleViewModel.UnassignedFunctions = editSecRoleViewModel.UnassignedFunctions.GroupJoin(globalFunctions,
uf => uf.FuncCode, gf => gf.FuncCode,
(uf, gf) => new FuncViewModel()
{
Descrip = uf.Descrip,
FuncCode = uf.FuncCode,
Grouping = uf.Grouping,
Progmodule = uf.Progmodule,
SubCat = uf.SubCat,
GrantPerm = (byte)(((int?)gf.FirstOrDefault().GrantPerm??1) | uf.GrantPerm),
DefaultGrantPerm = (byte) ((int?)gf.FirstOrDefault().GrantPerm ?? 1)
}).OrderBy(x => x.Descrip);
에 따라 JOIN 현재 코드
globalFunctions = _rolesAdapter.GetSecurityRightsForRole(SysManagerConstants.GLOBAL_DEFAULTS_ROLE_NUMBER, "SecFunc").
Select(secRight => new FuncViewModel()
{
Descrip = secRight.SecFunc.Descrip,
FuncCode = secRight.SecFunc.FuncCode,
Grouping = secRight.SecFunc.Grouping,
Progmodule = secRight.SecFunc.Progmodule,
SubCat = secRight.SecFunc.SubCat,
GrantPerm = secRight.GrantPerm
}).OrderBy(x => x.Descrip);
//Unassigned
editSecRoleViewModel.UnassignedFunctions = editSecRoleViewModel.UnassignedFunctions.Join(globalFunctions, uf => uf.FuncCode, gf => gf.FuncCode,
(uf, gf) => new FuncViewModel()
{
Descrip = uf.Descrip,
FuncCode = uf.FuncCode,
Grouping = uf.Grouping,
Progmodule = uf.Progmodule,
SubCat = uf.SubCat,
GrantPerm = (byte)(gf.GrantPerm | uf.GrantPerm),
DefaultGrantPerm = gf.GrantPerm
}).OrderBy(x => x.Descrip);