【发布时间】:2013-06-13 20:54:31
【问题描述】:
我在我的项目中使用dapper,这是一个漂亮的工具,用于将SQL query 结果存储到List,效果很好。
我写了一个SQL query 来从数据库中获取一条记录并将结果存储在一个变量中,我尝试使用 dapper 但遇到了一个错误。我已经粘贴了对应的代码。
异常:无法转换类型的对象 'System.Collections.Generic.List`1[Dapper.SqlMapper+DapperRow]' 到 输入“System.IConvertible”。
try
{
using(var connection = ...)
{
connection.Open();
const string masterSelectQuery = "SELECT Id as [fileId], FileName as [fileName], Frequency as [frequency], Scheduled_Time as scheduledTime FROM MASTER_TABLE";
masterTableList = connection.Query<MasterTableAttributes>(masterSelectQuery).ToList();//Working fine
const string lastProcessedTimeQuery = "SELECT TOP 1 file_transfered_time as [lastProcessedTime] FROM PROCESS_LOGS ORDER BY file_transfered_time DESC";
DateTime lastProcessedTime = Convert.ToDateTime(connection.Query(lastProcessedTimeQuery)); //Here it fails
}
}
为了克服这个错误,我使用了SQLCommand,如下所示
using (command = new SqlCommand(lastProcessedTimeQuery, connection))
{
DateTime lastProcessedTime = (DateTime)command.ExecuteScalar();//working fine
}
我在使用 dapper 时犯了一个错误,有人可以指导我吗?
提前致谢。
【问题讨论】:
-
顺便说一句,你不需要
connection.Open();,如果还没有,Dapper 会打开连接。 -
@ErenErsönmez 这取决于正在使用的版本,但是:是的
-
@ErenErsönmez 你是对的,谢谢你的指点。我正在使用 .NET Framework4 和相应的 dapper。
标签: dapper c# dapper sqlconnection