将DapperExtensions用于“GetList”时抛出异常

时间:2014-02-18 19:01:01

标签: c# orm ado.net dapper dapper-extensions

我认为DapperExtensions是一个非常简单的用例:

using (IDbConnection connection = Database.CreateConnection())
{
    var model = connection.GetList<MyModelPoco>().ToList();
}

然而,抛出异常:

找不到方法:'System.Collections.Generic.IEnumerable 1<System.__Canon> Dapper.SqlMapper.Query(System.Data.IDbConnection, System.String, System.Object, System.Data.IDbTransaction, Boolean, System.Nullable 1,System.Nullable`1)'。

我正在为Dapper(v1.13)和DapperExtensions(v1.4.3)使用NuGet。

为什么这不起作用的任何想法?我补充说:

using Dapper;

然而,这并不影响结果。 (Resharper还抱怨说使用指令不是必需的。)

当我直接使用它时,Dapper工作正常(虽然我注意到它的使用方式与DapperExtensions不同):

using (IDbConnection connection = Database.CreateConnection())
{
    var recordsets = connection.QueryMultiple("stored_procedure_name", new {parameterValue}, commandType:CommandType.StoredProcedure);
    var model1 = recordsets.Read<Model1Poco>().SingleOrDefault();

    if (model1 == null) return null;

    model1.Model2Collection = recordsets.Read<Model2Poco>().ToList();

    return model1;
}

我做了一些“谷歌搜索”,似乎达成的共识是DapperExtensions应该是一种插入和有趣的事情。

1 个答案:

答案 0 :(得分:2)

事实证明,我的解决方案中的一个项目有一个Dapper dll的旧副本。即使我在我的项目中使用了最新版本的Dapper(来自NuGet),在构建期间部署的dll也必须是旧的。

在更新所有项目引用以使用最新的NuGet包之后,事情正在发挥作用。