Სარჩევი:

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

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

ვიდეო: როგორ უმკლავდება Entity Framework კონკურენტულობას?
ვიდეო: Concurrency Check in EF Core 5 2024, მაისი
Anonim

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

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

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

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

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

შემდგომში, ჩნდება კითხვა, რა არის კლიენტის მოგების და მაღაზიის მოგების რეჟიმი Entity Framework-ის კონკურენციაში?

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

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

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

გირჩევთ: