У меня есть две таблицы «Назначения» и «Пациенты». Считайте, что они имеют данные следующим образом: Найдите схему БД в
Выше приведены мои таблицы с данными , Мой сценарий заключается в том, что я должен получить пациентов по отношению к конкретному врачу Приведенный ниже запрос работает, но не дает четких результатов. Я получаю одни и те же данные о пациенте более одного раза, я могу использовать разные после получения результатов, но мне нужно выполнить операцию в самом запросе строки (в самой базе данных)
from a in dbContext.Appointments
where a.doctorid == mydoctorid
join p in dbContext.Patients on a.patientid equals p.patientid
order by p.name
updated code which led to exception
(from p in this.dbContext.Patients
join b in ( from a in this.dbContext.Appointments
join p in this.dbcontext.Patient on a.Patientid equals p.id
where a.doctorid == doctorid
group a by a.Patientid into pg)
on p.Patientid equals b.FirstOrDefault().Patientid
order by p.Name
select new { p.Patientid, p.Name }).ToList()
final code which i tried:
(from p in this.m_dbContext.Patient
join b in (from a in this.m_dbContext.Appointments
join p in this.m_dbContext.Patient on a.Patientid equals
p.Patientid
where a.Doctorid == doctorid && a.Clinicid == clinicid
group a by a.Patientid)
on p.Patientid equals b.FirstOrDefault().Patientid
orderby p.Name
select new
{
p.Patientid,
p.Clinicid,
p.Name,
p.Mobilenumber,
p.Gender,
p.Dob,
p.Age,
p.Address,
p.City,
p.State,
p.Pincode
}).ToList().Count();
Исключение:
Выражение LINQ 'FirstOrDefault (GroupByShaperExpression: KeySelector: a.patientid, ElementSelector: EntityShaperExpression: EntityType: Назначения ValueBufferExpression: ProjectionBindingExpression: EmptyProjectionMember IsNullable: перевод не может быть ложным). Либо переписать запрос в форме, которую можно перевести, либо явно переключиться на оценку клиента, вставив вызов либо AsEnumerable (), AsAsyncEnumerable (), ToList (), либо ToListAsyn c (). См. https://go.microsoft.com/fwlink/?linkid=2101038 для получения дополнительной информации.