服务堆栈OrmLite LoadSelect-在选择中指定列时包括引用

时间:2018-12-07 12:44:51

标签: ormlite-servicestack

我定义了两个这样的实体

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>();

,并且我希望此结果包含两个实体信息。 示例:

Foo:

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

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

  

query =查询。选择

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

0 个答案:

没有答案