【问题标题】:Linq selecting sub results using selectLinq 使用 select 选择子结果
【发布时间】:2014-11-29 09:34:59
【问题描述】:

我不确定我是否希望在这里使用联合,或者这是否可行。

    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 对象,但为什么我不能轻松地从该列表中选择一个属性?

【问题讨论】:

    标签: c# linq linq-to-sql


    【解决方案1】:

    LINQ 中的这个表达式

    patient.AspNetUsers.First(d=>d.Email)
    

    的意思是“给我第一个AspNetUser,它的布尔属性Emailtrue”。当然这是没有意义的,因为Emailstring不是布尔值。

    你需要的是

    patient.AspNetUsers.First().Email
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-05
      • 2019-04-08
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 2018-03-17
      • 1970-01-01
      相关资源
      最近更新 更多