Я пытаюсь создать запрос linq, который содержит несколько подзапросов. Запрос я создал кажется правильным (по крайней мере, в синтаксисе), но я не получаю данные отправлены обратно и Скрипач показывает ошибку с этим запросом:C# LInq Subquery Issue
public IQueryable<vGatekeeperApproval> GetGatekeeperApprovals(string UserName)
{
SystemsFormsDataContext db = new SystemsFormsDataContext();
IQueryable<vGatekeeperApproval> query;
Int32 UserId = GetCurrentUserId(UserName);
bool IsGatekeeperApprover = IsCurrentUserGKApprover(UserName);
string strSysApproverEmail = GetSystemsApproverEmail(UserName);
try
{
query = (from s in db.vGatekeeperApprovals
join r in db.Requests on s.RequestId equals r.Id
where (IsGatekeeperApprover == true || s.OverrideApproverId == UserId)
&& (
(
from u in db.Staffs
where u.GateKeeperArea ==
(from c in db.vGK_DIV_USING_CCs
where c.SEGMENT_CODE ==
(from a in db.Attributes
where a.AttributeItemId== global_COSTCENTRE && a.FormId==s.Id
select a.AttributeValue).FirstOrDefault()
select c.PARENT_CODE_L3
).FirstOrDefault()
select u.Id
).ToList().Contains(UserId)
)
select s
);
}
catch (Exception ex)
{
query = (from s in db.vGatekeeperApprovals
where s.UserId == 0
select s);
//LogEvent("ERROR!" + ex.Message, ex.Source);
}
return query;
}
Любые идеи, что является причиной этой проблемы? Есть ли лучший способ создать подзапрос в linq?
Любая помощь была бы принята с благодарностью.
Shuja
Какая ошибка у вас? – SLaks