C# 无法从';System.Transactions.IsolationLevel';至';系统.数据.隔离级别';

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;

在实现一个不是TransactionScope类型的事务时,如何指定该事务的隔离级别

代码示例:

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);