2010-11-20 20 views
1

Bana çok tipik bir kullanım durumu olan aşağıdaki sorunların çözümünde yaklaşımlar söyleyebilir.Veritabanı değişiklikleri için izin ver

Kullanıcı 1 Kullanıcı 2 de 1. Nasıl birbiri üzerine yazılmadan değişiklikleri engellerim kullanıcıyla aynı kullanıcı değiştiriyorsa vb kullanıcılar rolleri değiştirerek olan düzenleme sayfa 1'dir ???

Bu, framework 3.5 ile asp.net sitesindedir ???

sayesinde Niall

cevap

4

İyimser eşzamanlılık sıklıkla ROWVERSION (aka TIMESTAMP SQL server) veri türünü kullanarak, burada çok yaygındır. Çoğu ORM bunu otomatik olarak halleder (ROWVERSION/TIMESTAMP'un varlığını algılar) - aksi takdirde bu kodu kodunuzda kullanmanız gerekir.

En basit düzeyde; Kaydı düzenlemek için kaydı getirdiğinizde getirdiğiniz ROWVERSION'u tutmaya devam edin ve kaydetmeye çalıştığınızda kontrol edin. Eşleşirse, kaydetme taahhüt edilir; aksi halde bir istisna atarsınız (ikinci düzenleme kaybeder).

Not: (alternatif olarak) güncelleştirme sırasında her bir sütunu kontrol edin; Bu daha ayrıntılı, ancak daha maliyetlidir (ve birbiriyle bağlantılı özelliklere sahip bazı senaryolarla tam olarak baş etmez).

+0

bu marc için mükemmel teşekkürler. – Somedeveloper

İlgili konular