2012-03-12 6 views
1

持つ2 POCOSPeta Pocoは複雑なタイプにマップできますか?

public class ProductInfoModel 
{ 
    public int Id { get; set; } 
    public string Name { get; set; }   
    public ItemInfo Producer { get; set; } 
} 

public class ItemInfo 
{ 
    public int Id {get;set;} 
    public string Name {get;set;} 
} 

私はこのような何かを行うことができますか?

基本的に、PetaPocoは他のPocoを含むPocosに対処する方法を知っていますか?

私はExperimental Multi-Poco Queriesについて知っていますが、私はかなり複雑で、私が望むものではないようです。

答えて

0

は、しかし、これは動作しますが、何のページネーションサポート

var result=db.Query<ProductInfoModel,ItemInfo>(
@"select p.Id,p.Name,pr.Id , pr.Name 
    from products p inner join producers pr on pr.Id=p.ProducerId") 
2

は、私はあなたが第二のタイプ(ItemInfo)を追加するだけです数える:

var result=db.Query<ProductInfoModel, ItemInfo>(
    "select p.Id,p.Name,pr.Id as Producer_Id, pr.Name as Producer_Name from products " + 
    "p inner join producers pr on pr.Id=p.ProducerId"); 
+0

それはスプリットポイントについて例外をスローしません。ネストされたpocoの列名はそのプロパティと同じでなければならず、型についてのヒントはないようです。 – MikeSW

+1

これは正しいので、「Producer_Id」として削除する必要があります。結果シーケンスの次の列名が現在のpocoと一致しない場合、PetaPocoは次のpoco Tに移動します。これをあなたのポコのプロパティの[Column]属性で上書きすることができます:http://www.toptensoftware.com/Articles/75/PetaPoco-Named-Columns-Result-Columns-and-int-long-conversion –

関連する問題