gpt4 book ai didi

c# - 'System.Data.IDbConnection' 到 'System.Data.SqlClient.SqlConnection'

转载 作者:太空宇宙 更新时间:2023-11-03 19:14:56 31 4
gpt4 key购买 nike

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/

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