0
У меня есть SQL запрос как:Регистрация запросов создает проблемы в Linq к SQL
SELECT b.firstName + ' ' + b.lastName AS Name, a.*
FROM EH_PP_TeacherObservations AS a INNER JOIN
account AS b ON a.EH_PP_TeacherAcctId = b.id LEFT JOIN
EH_PP_ObserverStatus AS c ON c.EH_PP_AcctId = b.id
WHERE a.EH_PP_TOSRT_TeacherObservationStatusIDEH = '0B823C51-EEAE-4490-B0EC-C1F0B1206AEB' AND
c.EH_PP_O_isObserver = 1
Я хотел бы иметь такой же запрос в LINQ.
Я сделал это следующим образом:
List<Entity.account> list = new List<Entity.account>();
list = (
from a in context.EH_PP_TeacherObservations
join b in context.accounts on new { EH_PP_TeacherAcctId = a.EH_PP_TeacherAcctId } equals new { EH_PP_TeacherAcctId = b.id }
join c in context.EH_PP_ObserverStatus on new { EH_PP_AcctId = b.id } equals new { EH_PP_AcctId = Convert.ToGuid(c.EH_PP_AcctId) } into c_join
from c in c_join.DefaultIfEmpty()
where
a.EH_PP_TOSRT_TeacherObservationStatusIDEH == new Guid("0B823C51-EEAE-4490-B0EC-C1F0B1206AEB") &&
c.EH_PP_O_isObserver == true
select new
{
Name = (b.firstName + " " + b.lastName),
EH_PP_ObservationID = a.EH_PP_ObservationID,
EH_PP_TE_TeacherEvalID = a.EH_PP_TE_TeacherEvalID,
EH_PP_TOT_ObservationStartDateTime = a.EH_PP_TOT_ObservationStartDateTime,
EH_PP_TOT_ObservationEndDateTime = a.EH_PP_TOT_ObservationEndDateTime,
EH_PP_TOT_Announced = a.EH_PP_TOT_Announced,
EH_PP_TOT_ObservationNum = a.EH_PP_TOT_ObservationNum,
EH_PP_TeacherAcctId = a.EH_PP_TeacherAcctId,
EH_PP_ObserverAcctID = a.EH_PP_ObserverAcctID,
EH_PP_TOSRT_TeacherObservationStatusIDEH = a.EH_PP_TOSRT_TeacherObservationStatusIDEH
}
).ToList<Entity.account>();
Но его дает мне ошибку на
join b in context.accounts on new { EH_PP_TeacherAcctId = a.EH_PP_TeacherAcctId } equals new { EH_PP_TeacherAcctId = b.id }
об ошибке на 'присоединиться' слова.
Type of one of expressions in the join clause is incorrect.
Type interface failed to call to 'join'
Пожалуйста, помогите мне.
Какая ошибка ???
Какие типы каждый из этих столбцов вы вступающих на? Кто-нибудь из них обнуляется? –
нет ... ни один из них не может быть нулевым –