我定义了两个像这样的实体
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
有没有办法做这样的事情?