2016-05-03 16 views
0

dapperを使用しています。私はこれを評価する場合:Dapperのマルチマッピング

var trains = 
       conn.Query<Train, TrainDriver, Train>(
        "Select T.TrainId,T.OperatorId,T.TrainDescriptor,T.DriverId,TD.TrainDriverId,TD.Name,TD.Salary from trains as T" + 
        "Inner Join TrainDrivers as TD on (T.DriverId = TD.TrainDriverId)" + 
        "Where T.TrainId = @id", (t, td) => 
        { 
         t.Driver = td; 
         return t; 
        }, new {id = id}, null, true, "TrainDriverId"); 

を私がするSQLExceptionを取得していますようだ:{「マルチパート識別子\」T.DriverId \「はバインドできませんでした\ rを\ nのマルチパート識別子\。」T .TrainId \ "はバインドできませんでした。\ r \ nマルチパーツ識別子" T.TrainId \ "はバインドできませんでした。\ r \ nマルチパーツ識別子" T.OperatorId \ "はバインドできませんでした。 r \ n複数の部分からなる識別子\ "T.TrainDescriptor \"はバインドできませんでした。\ r \ nマルチパーツ識別子\ "T.DriverId \"はバインドできませんでした。 "}

これらのフィールドはすべて存在し、私がSQLを取り除いてSQLマネージャで別々にクエリを実行すると、それは機能します...

何か考えていますか?

+0

私は、サーバーをプロファイルした場合、sp_executesqlをストアドプロシージャを使用しようとするようで、それはいくつかの変更と一緒に、問題... –

答えて

1

SQLクエリにはスペースがありません。試してみてください:

var trains = 
        conn.Query<Train, Driver, Train>(
         "Select T.TrainId,T.OperatorId,T.TrainDescriptor,T.DriverId,TD.TrainDriverId,TD.Name,TD.Salary from trains as T" + 
         " Inner Join TrainDrivers as TD on (T.DriverId = TD.TrainDriverId)" + 
         " Where T.TrainId = @id", (t, td) => 
         { 
          t.Driver = td; 
          return t; 
         }, new { id = id }, null, true, "TrainDriverId"); 
+0

おかげで...それを持っていることのようです投影のフィールドの、トリックを行ったようだ... –

関連する問題