2012-03-03 9 views
1

私はかなり古いバージョンのPetaPocoをhttps://github.com/schotime/PetaPocoから使用しています。これは基本的にマルチプライマリキー列をサポートするバニラです。アップグレードする時間だと決めました。 、今述べたschotimeリンクから最新バージョンをつかんで自分のプロジェクトにそれをダンプし、すぐにそのような構造のコードで障害を持っていた:私は「各パラメータのPetaPoco、特にschotimeの '既知のプロバイダタイプへのマッピングはありません'

class Program 
{ 
    public class AggregateObject 
    { 
     public int aoId { get; set; } 

     [PetaPoco.Ignore] 
     public Object1 o1 { get; set; } 

     [PetaPoco.Ignore] 
     public Object2 o2 { get; set; } 
    } 

    public class Object1 
    { 
     public int o1Id { get; set; } 
    } 

    public class Object2 
    { 
     public int o2Id { get; set; } 
    } 

    static void Main(string[] args) 
    { 
     var db = new Database("test"); 

     var test = db.Fetch<AggregateObject, Object1, Object2, AggregateObject>(
      (ao, o1, o2) => 
       { 
        ao.o1 = o1; 
        ao.o2 = o2; 
        return ao; 
       }, 
      "SELECT 1 AS aoId, 2 AS o1Id, 3 AS o2Id WHERE 1 <> @start AND 2 <> @end", 
      new 
       { 
        start = 5, 
        end = 5 
       }); 
    } 
} 
このエラーがスローされます

No mapping exists from object type <>f__AnonymousType0`2[[System.Int32, mscorlib, 
Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089], 
System.Data.SqlClient.SqlParameter, System.Data, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089]] to a known managed provider native type. 

m(この例では、System.Int32、System.Int32)を渡そうとしています。

パラメータがこの方法で渡される方法に何か変更がありましたか?エラーで非常に混乱しています。

+0

何もこれらのメソッドに変更はありません。あなたが間違ってそれを呼んでいるように見えます。実際にコンパイルする例を教えてください。 – Schotime

+0

ひとり残念だと思っていました。私は実際にテーブルを打つことなく問題を生成するより良い例を含めました。このコードはNugetのPetaPocoのバージョンで動作し、結果を返します。あなたのPetaPoco githubページから取得した最新のバージョンでは、上記の例外を除いてエラーになります。 – heyseuss

答えて

関連する問題