我不确定我是否想在这里使用工会,或者这是否有用。
var users =
db.AspNetUsers.Where(
x => x.AspNetRoles.Select(y => y.Id).Contains("4575754-799a-4bhe-8caf-00002344b7a6"))
.Select(d => d.PatientId);
var patients = from patient in db.Patients
where patient.LastName == lastName && clinicId == patient.ClinicId && users.Contains(patient.Id)
select new
{
patient.LastName,
patient.AspNetUsers.First(d=>d.Email),
patient.Sex
};
当我从患者那里得到所有内容时,这是有效的,但当我尝试从AspNetUsers对象获取电子邮件地址时,我收到消息'无法将表达式类型字符串转换为返回类型bool'
当我在quickwatch中时,我可以看到整个AspNetUsers对象在患者对象中返回,但为什么我不能轻易地从该列表中选择一个属性?
答案 0 :(得分:1)
LINQ中的这个表达式
patient.AspNetUsers.First(d=>d.Email)
表示“让我找到其布尔属性AspNetUser
为Email
”的第一个true
。当然这没有意义,因为Email
是string
,不是布尔值。
您需要的是
patient.AspNetUsers.First().Email