我正在尝试使用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
方法。
为此,我遵循了一些简短而分散的文档here和here。简而言之,我使用.insert()
将NuGet
和Dapper
添加到我的项目中,我在我的Repository类的顶部添加了Dapper.Contrib
和using 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]
答案 0 :(得分:4)
您正在查找的Insert
方法位于Dapper.Contrib.Extensions
命名空间内,如source中所示,包括完整性:
namespace Dapper.Contrib.Extensions
{
...
public static long Insert<T>(this IDbConnection connection, ...)
...
}
因此,为了使用Extension方法,您应该在代码中添加以下行:
using Dapper.Contrib.Extensions;