gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 12:30:58 24 4
gpt4 key购买 nike

我正在尝试使用Dapper.Contrib使用 .insert() 方法等扩展 IDbConnection 接口(interface)的功能。

为此,我遵循了一些简短且分散的文档 herehere 。简而言之,我已经使用 NuGetDapperDapper.Contrib 添加到我的项目中,我添加了 using Dapper; code> 和 using Dapper.Contrib; 在我的 Repository 类的顶部,我使用 System.Data.SqlClient.SqlConnection() 创建一个 IDbConnection .

不过,我的连接对象没有可用的扩展方法。例如,当尝试使用 .insert() 方法时,我收到消息:

'IDbConnection' C# does not contain a definition for 'Insert' and no extension method 'Insert' accepting a first argument of type could be found (are you missing a using directive or an assembly reference?)

这是使用 Razor Pages 的 ASP.NET Core 2.0 项目。
为了完整起见,您可以在下面找到 Repository 类。
也许值得注意的是,Dapper 和 Dapper.Contrib 的 using 行显示为灰色......
另外,当然,我有一个(非常简约的)TEST 实体模型类,其中包含一个参数 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);
}
}
}

最佳答案

您正在寻找的 Insert 方法位于 Dapper.Contrib.Extensions 命名空间内,如 source 中所示。 ,为了完整性而包含在内:

namespace Dapper.Contrib.Extensions
{
...

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

...
}

因此,为了使用扩展方法,您应该将以下行添加到代码中:

using Dapper.Contrib.Extensions;

关于asp.net - Dapper.Contrib 方法不可用于 IDbConnection 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50040179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com