PetaPoco:提取到复合对象中

本文关键字:对象 复合 提取 PetaPoco | 更新日期: 2023-09-27 18:31:41

我正在熟悉 PetaPoco(顺便说一句,它看起来很棒),但这里有一个阻止程序,我很好奇我是否可以在 PetaPoco 中做到这一点。

我想做的是将数据库中的一行映射到复合对象中。我认为这个例子会澄清问题。

假设,我们在数据库中有一个名为"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# 中处理不同的对象,但它只是一个实体(一个 Id,数据库中的一行)。

我可以使用 PetaPoco 实现这样的映射吗?

PetaPoco:提取到复合对象中

是的,你可以,它就像

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 中的其他多重映射的更多信息