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

  • Machinima

    Machinima

    17 Ocak 2006
  • TrenchTech Computer Repair Tutorials

    TrenchTech C

    19 EYLÜL 2014
  • Vortez

    Vortez

    27 Temmuz 2009