使用引用查询 POCO
Querying POCO's with References
我有以下(简化的)数据模型:
public class Order : IHasId<long>
{
[AutoIncrement]
public long Id { get; set; }
[References(typeof(Material))]
public long MaterialId { get; set; }
[Reference]
public Material Material { get; set; }
}
public class Material : IHasId<long>
{
[AutoIncrement]
public long Id { get; set; }
public string Name { get; set; }
}
我想要实现的是用 MaterialId
引用的 material 填充 Order.Material
,有没有办法以简单的方式实现? Load APIs 似乎做了类似的事情,但是在相反的情况下(当引用在 Material
上时,而不是在 Order
上)
这在 OrmLite 中称为 Self References 并适用于您上面的示例:
public class Order : IHasId<long>
{
[AutoIncrement]
public long Id { get; set; }
[References(typeof(Material))]
public long MaterialId { get; set; }
[Reference]
public Material Material { get; set; }
}
public class Material : IHasId<long>
{
[AutoIncrement]
public long Id { get; set; }
public string Name { get; set; }
}
db.Insert(new Material { Name = "A" });
db.Insert(new Material { Name = "B" });
db.Insert(new Order {
MaterialId = 2,
});
var order = db.LoadSingleById<Order>(1);
order.PrintDump();
递归打印对象图到输出:
{
Id: 1,
MaterialId: 2,
Material:
{
Id: 2,
Name: B
}
}
我有以下(简化的)数据模型:
public class Order : IHasId<long>
{
[AutoIncrement]
public long Id { get; set; }
[References(typeof(Material))]
public long MaterialId { get; set; }
[Reference]
public Material Material { get; set; }
}
public class Material : IHasId<long>
{
[AutoIncrement]
public long Id { get; set; }
public string Name { get; set; }
}
我想要实现的是用 MaterialId
引用的 material 填充 Order.Material
,有没有办法以简单的方式实现? Load APIs 似乎做了类似的事情,但是在相反的情况下(当引用在 Material
上时,而不是在 Order
上)
这在 OrmLite 中称为 Self References 并适用于您上面的示例:
public class Order : IHasId<long>
{
[AutoIncrement]
public long Id { get; set; }
[References(typeof(Material))]
public long MaterialId { get; set; }
[Reference]
public Material Material { get; set; }
}
public class Material : IHasId<long>
{
[AutoIncrement]
public long Id { get; set; }
public string Name { get; set; }
}
db.Insert(new Material { Name = "A" });
db.Insert(new Material { Name = "B" });
db.Insert(new Order {
MaterialId = 2,
});
var order = db.LoadSingleById<Order>(1);
order.PrintDump();
递归打印对象图到输出:
{
Id: 1,
MaterialId: 2,
Material:
{
Id: 2,
Name: B
}
}