SORU
21 Kasım 2008, Cuma


Veya geri alma bir okuma hareketi tamamlamak gerekir?

Yalıtım düzeyini belirlemek böylece bir hareketin içinde ben idam okumak bir sorgu var. Sorgu tamamlandıktan sonra, ne yapmalıyım?

  • Hareketi tamamlamak
  • Geri alma hareketi
  • Hiçbir işlem kullanarak blok sonunda geri dönmesine neden olur)

Her yapmanın anlamı nedir?

using (IDbConnection connection = ConnectionFactory.CreateConnection())
{
    using (IDbTransaction transaction = connection.BeginTransaction(IsolationLevel.ReadUncommitted))
    {
        using (IDbCommand command = connection.CreateCommand())
        {
            command.Transaction = transaction;
            command.CommandText = "SELECT * FROM SomeTable";
            using (IDataReader reader = command.ExecuteReader())
            {
                // Read the results
            }
        }

        // To commit, or not to commit?
    }
}

EDİT: Bu soru Eğer bir işlem olabilir ya da eğer hareket düzeyini ayarlamak için başka yollar varsa. Soru bir şey değiştirmez bir işlem tamamlanmış herhangi bir fark ya da geri alındı. Performans farkı var mı? Diğer bağlantıları etkilemez mi? Başka farklılıklar var mı?

CEVAP
21 Kasım 2008, Cuma


Taahhüt. Dönem. Başka mantıklı alternatif yok. Eğer bir hareket başlarsa, kapatın. İşlemekle vardı olabilir tüm kilitleri serbest bırakır, ve Readuncommıtted veya seri hale getirilebilir yalıtım düzeyi ile aynı derecede mantıklı. Örtülü geri alma belki teknik olarak eşdeğer olsa - - güvenmek, sadece kötü formu.

Eğer bu sizi ikna bulmazlarsa, sadece kodunuzu ortasında bir update deyimi ekler ve onun veri oluşur kaldıran örtülü geri alma izini olan sonraki adam hayal edin.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Google Россия

    Google Ро

    9 Temmuz 2007
  • kndx

    kndx

    11 Mart 2006
  • UKF Dubstep

    UKF Dubstep

    29 NİSAN 2009