将2个POCO合并为1个类并执行CRUD

时间:2013-04-18 08:41:59

标签: c# .net orm poco petapoco

我使用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映射到依赖对象。

有没有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

PetaPoco的设计既快又轻,所以你不会发现像Linq-to-sql或EF这样的复杂映射。