C# 无法从';System.Transactions.IsolationLevel';至';系统.数据.隔离级别';
在实现一个不是TransactionScope类型的事务时,如何指定该事务的隔离级别 代码示例:C# 无法从';System.Transactions.IsolationLevel';至';系统.数据.隔离级别';,c#,.net,C#,.net,在实现一个不是TransactionScope类型的事务时,如何指定该事务的隔离级别 代码示例: public bool CreateSale(Sale sale) { int count = 0; bool isSuccessful = false; using (SqlConnection connection = DBConnection.OpenConnection()) { SqlTransaction transaction;
public bool CreateSale(Sale sale)
{
int count = 0;
bool isSuccessful = false;
using (SqlConnection connection = DBConnection.OpenConnection())
{
SqlTransaction transaction;
using (SqlCommand cmd = connection.CreateCommand())
{
transaction = connection.BeginTransaction(IsolationLevel.RepeatableRead);
cmd.CommandText = $"INSERT INTO Sale(total_price, customer_id) OUTPUT INSERTED.id VALUES (@p1, @p2);";
cmd.Parameters.AddWithValue("@p1", sale.TotalPrice);
cmd.Parameters.AddWithValue("@p2", sale.Customer.Id);
sale.Id = (int)cmd.ExecuteScalar();
count = _salesLineDB.CreateSalesLinesWithForLoop(sale, connection);
if (count == sale.SalesLines.Count)
{
transaction.Commit();
isSuccessful = true;
}
else
{
transaction.Rollback();
}
}
}
return isSuccessful;
}
使用了以下示例:
我错过什么了吗 Use必须在
System.Data
命名空间中使用IsolationLevel
。将错误行更改为:
transaction = connection.BeginTransaction(System.Data.IsolationLevel.RepeatableRead);
好吧,它告诉你,有一个
System.Transactions.IsolationLevel
,其中需要一个System.Data.IsolationLevel
您可以通过提供完全限定的类型,更改
transaction = connection.BeginTransaction(IsolationLevel.RepeatableRead);
到
或者尽可能使用语句调整您的
。检查您是否真的需要使用System.Transactions代码>。如果没有,请将其拆下。它已将其固定。非常感谢你。在这之后还有其他bug需要修复,但离成功又近了一步。它修复了它。非常感谢你。之后还有其他bug需要修复,但离成功又近了一步。
transaction = connection.BeginTransaction(System.Data.IsolationLevel.RepeatableRead);