Სარჩევი:

მხარს უჭერს თუ არა Entity Framework პესიმისტურ ჩაკეტვას?
მხარს უჭერს თუ არა Entity Framework პესიმისტურ ჩაკეტვას?

ვიდეო: მხარს უჭერს თუ არა Entity Framework პესიმისტურ ჩაკეტვას?

ვიდეო: მხარს უჭერს თუ არა Entity Framework პესიმისტურ ჩაკეტვას?
ვიდეო: Optimistic Locking vs Pessimistic Locking With EF Core 2024, დეკემბერი
Anonim

სხვა ალტერნატივა არის მიმართო ოპტიმისტურს ჩაკეტვა . დოკუმენტში აღნიშნულია, რომ ე.ფ აკეთებს არ აქვს ჩაშენებული პესიმისტი კონკურენტულობა მხარდაჭერა . Მაგრამ ეს აკეთებს არ ნიშნავს შენ შეუძლია არ აქვს პესიმისტური ჩაკეტვა EF-თან ერთად. Ასე რომ თქვენ შეუძლია აქვს პესიმისტური ჩაკეტვა EF-ით!

გარდა ამისა, როგორ ინარჩუნებს Entity Framework კონკურენტულობას?

ერთეულის ჩარჩო მხარს უჭერს ოპტიმისტურს კონკურენტულობა ნაგულისხმევად. EF ზოგავს ა ერთეული მონაცემთა ბაზაში, იმ ვარაუდით, რომ იგივე მონაცემები არ შეცვლილა მას შემდეგ ერთეული დატვირთული იყო. თუ აღმოაჩენს, რომ მონაცემები შეიცვალა, მაშინ გამონაკლისი დგება და თქვენ უნდა მოაგვაროთ კონფლიქტი მის ხელახლა შენახვამდე.

გარდა ამისა, რა არის კლიენტის მოგების და მაღაზიის მოგების რეჟიმი Entity Framework-ის კონკურენციაში? In მაღაზია იმარჯვებს / მონაცემთა ბაზა იგებს სერვერის მონაცემები იტვირთება თქვენს ერთეული ობიექტები. კლიენტი იგებს საპირისპიროა შენახული მოგება , მონაცემები ერთეული ობიექტი შენახულია მონაცემთა ბაზაში. ჩვენ უნდა გამოვიყენოთ "განახლების" მეთოდი ერთეულის ჩარჩო კონტექსტში და ამისათვის ჩვენ უნდა გამოვიყენოთ "RefreshMode" პუნქტი.

აქ, როგორ აგვარებს Entity Framework კონკურენტულ კონფლიქტებს?

კონკურენტული კონფლიქტების მოგვარების ზოგადი მიდგომა შემდეგია:

  1. დაიჭირეთ DbUpdateConcurrencyException SaveChanges-ის დროს.
  2. გამოიყენეთ DbUpdateConcurrencyException.
  3. განაახლეთ კონკურენტულობის ჟეტონის ორიგინალური მნიშვნელობები, რათა ასახოს მიმდინარე მნიშვნელობები მონაცემთა ბაზაში.
  4. ხელახლა სცადეთ პროცესი, სანამ კონფლიქტები არ მოხდება.

როგორ უმკლავდება Web API კონკურენტულობას?

Როგორ გაუმკლავდეს კონკურენტულობას ASP. NET Core-ში ვებ API . შექმენით ცარიელი პროექტი და განაახლეთ Startup კლასი, რომ დაამატოთ სერვისები და შუალედური პროგრამები MVC-სთვის. საჩვენებლად დაამატეთ კონტროლერი GET-ით და PUT-ით კონკურენტულობა . გაგზავნეთ GET მოთხოვნა და დააკვირდით ETag სათაურს (ფოსტალიონის გამოყენებით).

გირჩევთ: