3

私は PetaPoco に慣れ親しんでいます (見た目は素晴らしいです) が、ここに 1 つのブロッカーがあり、PetaPoco でそれができるかどうか興味があります。

私がやりたいことは、データベース内の 1 つの行を複合オブジェクトにマップすることです。その例で物事が明確になると思います。

データベースに「Customers」というテーブルがあり、行が次のようになっているとします。

ID | Name     | City     | Street           | 
1  | John Doe | New York | Some Street Name |

そして、私はそのようなモデルを使用したいと思います:

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    public Address Address { get; set; }
}

public class Address
{
    public string City{ get; set; }
    public string Street { get; set; }
}

したがって、C# では異なるオブジェクトを使用する必要がありますが、エンティティは 1 つだけです (データベース内の 1 つの ID、1 つの行)。

PetaPoco を使用してそのようなマッピングを実現できますか?

4

1 に答える 1

2

はい、できます。次のように簡単です。

var customers = db.Fetch<customer, address>(@"
        SELECT * FROM customers
        LEFT JOIN adresses ON customers.customerID = adresses.customerID 
        ORDER BY customers.customerID
        ");

それと他のマルチマッピングの詳細については、http://www.toptensoftware.com/blog/posts/115-PetaPoco-Mapping-One-to-Many-and-Many-to-One-Relationshipsを参照してください。

于 2012-04-19T16:04:27.790 に答える