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

  • Charles Nesson

    Charles Ness

    27 NİSAN 2006
  • EminemVEVO

    EminemVEVO

    12 Mayıs 2009
  • Microsoft Help & Training Videos

    Microsoft He

    31 Mart 2009