- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
protected override IDbCommand GetDbCommand(string key, IDbTransaction transaction)
{
if (transaction == null)
{
return base.GetDbCommand(key);
}
return new SqlCommand { Connection = transaction.Connection, Transaction = transaction };
}
尝试编译上述代码时出现以下错误。
Cannot implicitly convert type 'System.Data.IDbConnection' to 'System.Data.SqlClient.SqlConnection'. An explicit conversion exists (are you missing a cast?)
最佳答案
错误信息是不言自明的。您的方法采用 IDBTransaction
,它的 Connection
属性返回 IDBConnection
,它是所有连接类型实现的接口(interface),不仅是 SqlConnection
。
您可以将它转换为 SqlConnection
,但如果有人试图将您的方法用于不同的事务类型,那将很容易出错,因为这会导致运行时异常。
但是你可以使用Connection.CreateCommand
:
protected override IDbCommand GetDbCommand(string key, IDbTransaction transaction)
{
if (transaction == null)
{
return base.GetDbCommand(key);
}
var cmd = transaction.Connection.CreateCommand();
cmd.Transaction = transaction;
return cmd;
}
关于c# - 'System.Data.IDbConnection' 到 'System.Data.SqlClient.SqlConnection',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17687250/
在 MVC 项目中,我有一个带有命令和查询的服务层。 在其中一些命令和查询中,我使用了需要连接的 Dapper。 public class GetPostsStatsQuery { public
我应该如何将 IDbConnection 和 IDbTransaction 与 Dapper 一起使用? 目前我只使用 IDbConnection 。如下: using (SqlConnection
当我编写应用程序时,我使用 System.Data 接口(interface)(IDbConnection、IDbCommand、IDataReader、IDbDataParameter 等...)。
我想用 firebird db 测试 dapper micro orm,但我很难访问 firebird。 Firebird 服务器已启动并运行,数据库中填充了一些虚拟数据,并存储在 c:\mydata
我有时会引发此异常: System.InvalidOperationException: 'The ConnectionString property has not been initialized
我有一个使用 autofac 进行依赖注入(inject)的 .NET MVC 应用程序。当应用程序启动时,以下代码注册 IDbConnection var connectionString = C
当连接到 SQL-Server 时,我的程序执行挂起在 .Open() 方法上超过指定的 2 秒超时。 当数据库所在的机器离线或重新启动时,我设法重现了这个问题。当数据库所在的机器启动时,程序的执行将
我有一些按顺序调用的方法,它们都按顺序对 MySQL 数据库执行查询: UpdateInvoice() - > UpdateOrderItems(connection) |--------
我有一个 IDbConnection 的实例,它可以是任何连接、Sql、OleDb 等。我想制作一个通用包装器,这样我就可以向包装器发送一个连接并获得一组很好的方法以便于操作。我有一个 Query 方
虽然我的假设听起来很主观,但经过一些研究后,我发现开发人员喜欢使用虚拟 Try/Catch 而不是使用 Using statement 的情况并不少见。用于 IDbConnection/IDbTran
我知道将 IDbConnection 对象包装在 using block 中可确保调用 Dispose 并释放它正在使用的资源。话虽如此,我是否还需要将 IDbCommand 和 IDataReade
我在我的 ASP.NET WebForms 解决方案中使用了 dapper。 我所有处理数据的类都从这个基类中检索一个打开的连接 public abstract class SalesDb : IDi
我需要一些帮助 我尝试将 INSERT 插入到我的 SQL 数据库中,但我做不到,因为在此代码行中给我一个错误: commandoSQL.Connection = dbcon; 我收到这个错误: A
TLDR:注入(inject)连接工厂与 IDbConnection 本身的原因是什么。 我目前在 .net MVC 中使用 Autofac 将 IDbConnection 实例注入(inject)到
Entity Framework cotext DbContext 具有采用 DbConnection 的构造函数。为什么不是 IDbConnection? 是否通常将 DbConnection 传递
我有一个 .Net 核心 Web 应用程序和 .net 核心库。在使用 Dapper 时,我需要传入一个继承自 IDbConnection 的具体类。问题是在 .Net Core 中 System.D
我正在尝试使用Dapper.Contrib使用 .insert() 方法等扩展 IDbConnection 接口(interface)的功能。 为此,我遵循了一些简短且分散的文档 here和 here
注入(inject)连接字符串与 IDbConnection 实例的权衡是什么? ? 我使用 StructureMap 将各种服务注入(inject)到我的 ASP.NET MVC 应用程序中,其中大
我想知道关于在 .Net 应用程序中维护与数据库的连接的最佳做法是什么(ADO.NET,但我想这种做法对于任何数据层都应该是相同的)。我应该创建一个数据库连接并将其传播到我的整个应用程序,还是只传递连
在 Dapper 中使用 BeginTransaction() 和 IDbConnection 的正确方法是什么? 我创建了一个方法,我必须在其中使用 BeginTransaction()。这是代码。
我是一名优秀的程序员,十分优秀!