结果实体框架5中的LINQ子查询

时间:2013-12-06 14:25:30

标签: c# linq entity-framework entity-framework-5

我有以下课程

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 会是什么?

2 个答案:

答案 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);