我定义了两个这样的实体
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 =查询。选择
有没有办法做这样的事情?