Dapper.Contrib方法不可用于IDbConnection对象

时间:2018-04-26 10:03:21

标签: asp.net razor asp.net-core dapper dapper-contrib

我正在尝试使用Dapper.Contrib扩展int choice = scan.nextInt(); switch(choice){ case 1: System.out.println("\nWho would you like to call?"); name = scan.nextLine(); CallContact(name); break; case 2: System.out.println("\nWhich coontact You Want to Search?"); break; case 3: System.out.println("\nWhich Name You Want to Save?"); name = scan.nextLine(); System.out.println("\nWhat is the Number of the person you want to save?"); long number = scan.nextLong(); SaveContact(name, number); break; default: } } 界面的功能,其中包括IDbConnection方法。

为此,我遵循了一些简短而分散的文档herehere。简而言之,我使用.insert()NuGetDapper添加到我的项目中,我在我的Repository类的顶部添加了Dapper.Contribusing Dapper;,我正在使用using Dapper.Contrib;创建System.Data.SqlClient.SqlConnection()

但是,我的连接对象没有可用的扩展方法。例如,在尝试使用IDbConnection方法时,我收到消息:

  

'的IDbConnection' C#不包含' Insert'的定义和不   扩展方法'插入'接受类型的第一个参数可能是   发现(您是否缺少using指令或程序集引用?)

这是在使用Razor Pages的ASP.NET Core 2.0项目中 为了完整起见,您可以在下面找到Repository类 也许有趣的是,Dapper和Dapper.Contrib的.insert()行是灰色的...
此外,我当然有一个(非常简约的)TEST实体模型类,包含一个参数using,注释为TEST_COLUMN

[Key]

1 个答案:

答案 0 :(得分:4)

您正在查找的Insert方法位于Dapper.Contrib.Extensions命名空间内,如source中所示,包括完整性:

namespace Dapper.Contrib.Extensions
{
    ...

    public static long Insert<T>(this IDbConnection connection, ...)

    ...
}

因此,为了使用Extension方法,您应该在代码中添加以下行:

using Dapper.Contrib.Extensions;