我定义了两个像这样的实体

public class Foo
{
    [AutoIncrement]
    [PrimaryKey]
    public long Id { get; set; }

    [ForeignKey(typeof(Bla))]
    public long IdBla { get; set; }
    [Reference]
    public Bla Bla { get; set; }

    public string OtherField { get; set; }
}

public class Bla
{
    [AutoIncrement]
    [PrimaryKey]
    public long Id { get; set; }

    public string Name { get; set; }
}

我正在尝试生成一个select语句,只包含我需要的字段,并将数据加载到定义的引用中

var query = con.From<Foo>()
  .LeftJoin<Foo, Bla>((p, a) => p.IdBlah == a.Id);
query = query.Select<Foo, Bla>((p, a) => new
{
    p.Id,
    p.OtherField,
    a.Id,
    a.Name,
});
var result = con.LoadSelect<Foo>();

我希望这个结果包含两个实体信息 . 例:

富:

{
    Id: 12,
    OtherField: "meh",
    Blah: {
        Id: 77,
        Name: "Anything"
    }
}

如果我只是删除以下语句,它按预期工作,但它查询这些表中的所有字段

query = query.Select

有没有办法做这样的事情?