我正在尝试使用Dapper.Contrib来扩展IDbConnection
接口的功能,其中包括该.insert()
方法。
为此,我遵循了此处和此处的一些简短而分散的文档。简而言之,我曾经在我的项目NuGet
中添加Dapper
和Dapper.Contrib
,我已经在我的 Repository 类的顶部添加了using Dapper;
和using Dapper.Contrib;
,我正在使用System.Data.SqlClient.SqlConnection()
它来创建一个IDbConnection
.
不过,我的连接对象没有可用的扩展方法。例如,当尝试使用该.insert()
方法时,我收到以下消息:
'IDbConnection' C# 不包含'Insert' 的定义,并且找不到接受第一个类型参数的扩展方法'Insert'(您是否缺少 using 指令或程序集引用?)
这是在使用 Razor Pages 的 ASP.NET Core 2.0 项目中。
为了完整起见,您可以在下面找到 Repository 类。
可能值得注意的是,using
Dapper 和 Dapper.Contrib 的行是灰色的...
另外,当然,我有一个用于 TEST Entity 的(非常简约的)模型类,包含一个参数 ,TEST_COLUMN
用 注释[Key]
。
using Dapper.Contrib;
using Dapper;
using Microsoft.Extensions.Configuration;
using TestProject.Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Threading.Tasks;
namespace TestProject.Repository
{
public class TEST_Repository
{
IConfiguration configuration;
public TEST_Repository(IConfiguration configuration)
{
this.configuration = configuration;
}
public void Insert()
{
using (var con = this.GetConnection())
{
con.Insert(new TEST { TEST_COLUMN = "test" });
}
}
public IDbConnection GetConnection()
{
return new SqlConnection(configuration.GetSection("ConnectionStrings").GetSection("DefaultConnection").Value);
}
}
}