使用短小精悍。当我评价这个:
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 Manager中单独运行查询,它就可以运行......
有什么想法吗?
答案 0 :(得分: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");