我如何在ORMLite中进行自我加入

时间:2018-12-03 07:33:46

标签: c# ormlite-servicestack

我正在尝试根据主管的主管获取特定领班的所有时间条目。但是,我似乎在用ORMLite编写自我联接查询时遇到麻烦。请参阅下面的数据结构和代码。

public class User
{
    [AutoIncrement]
    public int Id { get; set; }
    public string Name { get; set; }    
    [References(typeof(User))]
    public int SupervisorId { get; set; }
}
public class TimeSheet
{
    [AutoIncrement]
    public int Id { get; set; }       
    [References(typeof(User))]
    public int ForemanId { get; set; }
}

var query = db.From<TimeSheet>()
.Join<User>()
.Join<User, User>(); // not sure how to write this one.
// .Where(super => super.SupervisorId = 2)

我创建了一个sample gist,以尝试更好地展示我的尝试。

1 个答案:

答案 0 :(得分:1)

var query = db.From<TimeSheet>()
   .Join<User>()
   .Join<User, User>((p, q) => p.Id == q.SupervisorId, db.JoinAlias("u2"));