【发布时间】:2013-04-18 08:41:59
【问题描述】:
我使用 PetaPoco 作为 ORM,想将 2 个 POCO 组合成 1 个类,然后用这个类执行 CRUD 操作。
现在我得到了这样的东西:
*Table Person 有一个 fk address_id.*
public class Person
{
public PersonPOCO Person { get; set; }
public AddressPOCO Address { get; set; }
public Person(string sql)
{
Person = Db.SingleOrDefault<PersonPOCO>(sql);
Address = Db.SingleOrDefault<PersonPOCO>("SELECT * FROM addresses WHERE id = @0, PersonPoco.address_id");
}
public void Save()
{
var addressId = Db.Save(Address); // Returns inserted ID
Person.address_id = addressId;
Db.Save(Person);
}
}
到目前为止一切正常。 但是对于每个需要的组合,这样做真的很烦人和重复。
尤其是保存很痛苦,因为我必须将插入的 ID 映射到依赖对象。
有没有更好的方法来实现这一点?
【问题讨论】: