【发布时间】:2018-05-21 19:35:17
【问题描述】:
我想要一个 LINQ 查询,它应该返回所有具有 VitalSigns 的成员,其中生命体征中的事件等于手术。
我的Member.cs班级:
public class Member
{
public int Id { get; set; }
public string FullName { get; set; }
public ICollection<VitalSign> VitalSigns { get; set; }
public Member()
{
VitalSigns = new Collection<VitalSign>();
}
}
我的VitalSign.cs 课程是:
public class VitalSign
{
public int Id { get; set; }
public string Event { get; set; }
// relationships
public Member Member { get; set; }
public int MemberId { get; set; }
}
我写的 LINQ 查询是:
return await context. Members.Include(c => c.VitalSigns.Where(t => t.Event == "post surgery")).ToListAsync();
这将返回一个自引用循环。因为VitalSigns中有一些数据事件不等于“术后”。我是不是写错了查询?
【问题讨论】:
-
@RyanWilson 问题不在于顺序(
Where在Include之前或之后),问题在于Where和Include应该在同一级别查询,所以Where外面的Include -
@xanatos 感谢您的解释。感谢。我仍在使用 SQLClient 和存储过程等进行数据库工作。所以我对使用 Linq 语法的 EntityFramework 不是很熟悉。
-
@xanatos 如果他们在同一级别,那么我无法获得事件。
-
@gogo 因为你必须使用内部
Any...查看我的回复