从列表中的 db 获取值

Posted

技术标签:

【中文标题】从列表中的 db 获取值【英文标题】:Get value from db in list 【发布时间】:2021-11-11 09:16:03 【问题描述】:

我有以下代码。它给了我事件列表。在那我想得到病人的名字。

我有患者 ID,但我很困惑如何使用该 ID 获取患者姓名。

events = db.PTSessions.Where(x => x.OfficeIdFk == user.OfficeIdFk || x.PTIdFk == user.PTId).Where((a => a.AppointmentDate > start &&
                (a.AppointmentTimeTo < end))).Select(m => new EventViewModel
                
                    id = m.SessionId,
                    title = m.AppointmentReason,
                    start = m.AppointmentTimeFrom,
                    end = m.AppointmentTimeTo,
                    allDay = false,
                    patientid = m.PatientIdFk,
                    appointmentstatus = m.AppointmentStatus,
                    patientname = db.Patients.Where(p => p.PatientId == m.PatientIdFk).Select(p => p.PatientName).ToString()
                ).ToList();

在上面的代码中,我无法获取患者姓名并且也出现错误。

谢谢

【问题讨论】:

请在帖子中包含错误描述。 @Jackdaw 我收到此错误:LINQ to Entities 不支持指定的类型成员“PatientName”。仅支持初始化器、实体成员和实体导航属性。 @Nic 您在 PTSessions 和患者实体之间有适当的关系吗?如果是,那么在 PTSession 实体中,您会找到 Patient 实体(x.Patient 像这样),这将解决您的问题 【参考方案1】:

试试这个

patientname = db.Patients.Where(p => p.PatientId == m.PatientIdFk)
.Select(p => p.PatientName).FirstOrDefault()

【讨论】:

我试过这个并得到这个错误:LINQ to Entities 不支持指定的类型成员“PatientName”。仅支持初始化器、实体成员和实体导航属性。 @Nic 请也发布患者课程

以上是关于从列表中的 db 获取值的主要内容,如果未能解决你的问题,请参考以下文章

检查多个列在表值参数中具有多个值中的任何一个

从列表中的每个值中选择前 10 个元素

如何从 Db2 中的十进制字段中获取无效值列表?

如何从 QMultiMap 中的值中获取键?

如何将嵌套字典列表与它们的值中的公共键相加? [复制]

我无法从 laravel 中的输入值中获取请求值