Question

I am using PetaPoco as an ORM and want to combine 2 POCO into 1 class and then execute CRUD operations with this class.

Right now I got something like this:

*Table Person has an 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);
    }
}

This is working fine so far. But it gets really annoying and repetive doing this for every needed Combination.

Especially saving is a pain, since I have to map the inserted ID to the dependent object.

Are there better ways to achieve this?

Was it helpful?

Solution

PetaPoco is designed to be fast and lightweight, so, you won't find this kind of complex mapping like Linq-to-sql or EF have in it.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top