2016-11-01 6 views
2

私はpeta pocoと関連するクラスに苦しんでおり、 "PetaPocoProofOfConcept.ResourceとPetaPocoProofOfConcept.BookingTypeの間に分割ポイントが見つかりませんでした"というエラーが表示されています。Petapoco - 分割ポイントが見つかりませんでした

私の2つのクラスがある:

[TableName("Resource"), PrimaryKey("Id")] 
public class Resource 
{ 
    public int Id { get; set; } 
    public string Title { get; set; } 
    public string Description { get; set; } 
    public long MinTimeSpan { get; set; } 
    public long MaxTimeSpan { get; set; } 
    public long FixedTimeSpan { get; set; } 
    public DateTime ActiveStart { get; set; } 
    public DateTime ActiveEnd { get; set; } 
    public bool Active { get; set; } 
    public BookingType BookingType { get; set; } 
    public int StatusId { get; set; } 
} 

[TableName("BookingType"), PrimaryKey("Id")] 
public class BookingType 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string Description { get; set; } 
} 

のコード行を実行するとき、私はエラーを取得:

using (var connection = new SqlConnection(ConnectionString)) 
     { 
      connection.Open(); 
      var resources = new Database(connection).Query<Resource, BookingType>("SELECT * FROM [Resource]").ToList(); 
     } 

私はいくつかのドキュメントを読んでてきたが、なぜこののいずれかの答えを見つけるように見えるカント失敗する。誰か知っていますか?

ありがとうございました:)

答えて

2

これは、Petapocoマルチマッピングの仕組みではありません。 あなたはこの方法で、その構文を使用することができます。これは、あなたの投稿や著者との2つのリストを与える

var posts = db.Fetch<post, author>(@" 
     SELECT * FROM posts 
     LEFT JOIN authors ON posts.author = authors.id ORDER BY posts.id 
     "); 

あなたは(あなたの例のように)、より複雑なマッピングを実行したい場合は、このようなコールバックを記述する必要があります。

var posts = db.Fetch<post, author, post>(
     (p,a)=> { p.author_obj = a; return p; }, 
     @"SELECT * FROM posts 
     LEFT JOIN authors ON posts.author = authors.id ORDER BY posts.id 
     "); 

More info on Petapoco Multi mapping

+0

大丈夫ああ、いくつかのことをexpains。私はそれがどのように動作するのか誤解する必要があります。私はあなたがここに提案しているものを試してみるでしょう、ありがとう。 – Diemauerdk

関連する問題