如何通过ServiceStack.OrmLite获取通过中间table关联的所有对象?

How can I get all the objects associated through the intermediate table by ServiceStack.OrmLite?

我是初学者,刚开始使用ServiceStack.OrmLite。我有个问题。如何通过中间table获取所有关联的对象?

详情如下:

Public class book
{
    Public int id { get; set; }
    Public string name { get; set; }
    [Reference]
    Public List<bookusers> bookusers { get; set; }
}

Public class bookusers
{
    Public int id { get; set; }
    Public int bookid { get; set; }
    Public int userid { get; set; }
    [Reference]
    Public book book { get; set; }
    [Reference]
    Public user userObject { get; set; }
}

Public class user
{
    Public int id { get; set; }
    Public int age { get; set; }
    [Reference]
    Public List<bookusers> userbooks { get; set; }
}

var model = db.LoadSingleById<book>(id);
db.LoadReferences(model);
// model.bookusers[0].userObject is null

您不能直接检索二级参考文献 stated in documentation

Loads related data only 1-reference-level deep

下一个可能是快速而肮脏的工作方法

var model = db.LoadSingleById<book>(id);
if (model.bookusers != null && model.bookusers.Any())
{
    foreach (var bookUser in model.bookusers)
    {
        db.LoadReferences(bookUser);
    }
}

那么您应该填充 userObject 属性。