我有以下课程
public class Interview
{
public int Id { get; set; }
public ICollection<InterviewSlot> Slots { get; set; }
}
public class InterviewSlots
{
public int Id { get; set; }
public Candidate Candidate { get; set; }
}
public class Candidate
{
public int Id { get; set; }
}
我想要这样的东西,
var candidates = _DbContext.Interviews.Where(i => i.Id == Id).Select(s => s.Slots.Select(c => c.Candidate).ToList();
我不想使用InterviewSlots或Candidate对象
我希望在面试中获得所有候选人。
LINQ 会是什么?
答案 0 :(得分:2)
我认为在linq中可能会出现类似的情况:
var candidates = _DbContext.Interviews.Where(i => i.Id == id)
.SelectMany(interview => interview.Slots)
.Select(slot => slot.Candidate)
.ToList();
不知道你打算如何使用它,这很难回答。
答案 1 :(得分:1)
我真的不明白你的问题
LINQ将为此做些什么?
但是,这是你在面试中获得所有候选人所需要的。
没有空检查。
var interview = _DbContext.Interviews.Where(i => i.Id == Id).Single();
var candidates = interview.Slots.Select(s => s.Candidate);
使用空检查
var interview = _DbContext.Interviews.Where(i => i.Id == Id).SingleOrDefault();
if (interview != null)
var candidates = interview.Slots.Select(s => s.Candidate);
在一行
_DbContext.Interviews.Where(i => i.Id == Id)
.Single()
.Slots.Select(s => s.Candidate);