2016-12-23 7 views
0

以下のコードで問題が発生しています。すべてが正常に見えるが、それでも私は、エラーの下に取得する:マッピングで大まかな結合クエリエラーが発生しました

'MetalItems' does not contain a definition for 'metals' and no extension method 'metals' accepting a first argument of type 'MetalItems' could be found (are you missing a using directive or an assembly reference?) E:\VS2010\Jewellery\SilverSpoon\SilverSpoon\API\models\MetalItems.cs 38 52 SilverSpoon

CODE

class MetalItems 
{ 
    public int ID { get; set; } 
    public int metal_id { get; set; } 
    public string item_name { get; set; } 
    public Metals metals {get; set;} 

    public IEnumerable<MetalItems> findAllJoin<MetalItems>() 
    { 
     IEnumerable<MetalItems> data = null; 

     using (var sqlConnection = Database.getConnection()) 
     { 
      data = sqlConnection 
       .Query<MetalItems, Metals, MetalItems>(
       @"SELECT * FROM metal_items mi JOIN metals m ON mi.metal_id = m.metal_id ORDER BY mi.metal_id", 
             (mi, m) => 
             { 
              mi.metals = m; 
              return mi; 
             }, 
             splitOn: "metal_id"); 
     } 
     return data; 
    } 
} 

class Metals 
{ 
    public int metal_id { get; set; } 
    public string metal_name { get; set; } 
    public decimal rate_per_gram { get; set; } 
    public decimal making_charges { get; set; } 
} 

エラー行は、スナップショットの下で表示されます。一般的に私は、それらのデータ操作とクラスのとても基金ないんだけど、それ自身のデータ層にこのロジックを分離することを好むだろうが、これはあなたが望むものであるならば...

enter image description here

答えて

1

"ジェネリック"を削除しますか?あなたのfindAllJoinメソッドの一部で、うまくいくはずです

 public IEnumerable<MetalItems> findAllJoin() 
     { 
      IEnumerable<MetalItems> data = null; 

      using (var sqlConnection = Database.getConnection()) 
      { 
       data = sqlConnection 
        .Query<MetalItems, Metals, MetalItems>(
        @"SELECT * FROM metal_items mi JOIN metals m ON mi.metal_id = m.metal_id ORDER BY mi.metal_id", 
              (mi, m) => 
              { 
               mi.metals = m; 
               return mi; 
              }, 
              splitOn: "metal_id"); 
      } 
      return data; 
     } 
+0

ありがとう、それは私を助けました。 –

関連する問題