खोज…


टिप्पणियों

ट्रैकिंग व्यवहार नियंत्रित करता है कि एंटिटी फ्रेमवर्क अपने परिवर्तन ट्रैकर में एक इकाई उदाहरण के बारे में जानकारी रखेगा या नहीं। यदि किसी इकाई को ट्रैक किया जाता है, तो इकाई में सेव किए गए किसी भी परिवर्तन को SaveChanges() दौरान डेटाबेस में रखा जाएगा।

ट्रैकिंग क्वेश्चन

  • डिफ़ॉल्ट रूप से, क्वेरी प्रकार जो वापसी इकाई को ट्रैक कर रहे हैं
  • इसका मतलब है कि आप उन इकाई उदाहरणों में परिवर्तन कर सकते हैं और उन परिवर्तनों को SaveChanges() द्वारा जारी रखा गया है

उदाहरण :

  • SaveChanges() दौरान book रेटिंग में परिवर्तन का पता लगाया जाएगा और डेटाबेस को जारी रखा जाएगा।
  using (var context = new BookContext())
  {
    var book = context.Books.FirstOrDefault(b => b.BookId == 1);
    book.Rating = 5;
    context.SaveChanges();
  }

नो-ट्रैकिंग क्वेश्चन

  • जब परिणाम read-only परिदृश्य में उपयोग किए जाते हैं, तो कोई ट्रैकिंग क्वेरी उपयोगी नहीं होती है
  • वे quicker to execute हैं क्योंकि ट्रैकिंग परिवर्तन जानकारी को सेटअप करने की कोई आवश्यकता नहीं है

उदाहरण :

using (var context = new BookContext())
{
    var books = context.Books.AsNoTracking().ToList();
}

EF Core 1.0 के साथ आप context instance स्तर पर डिफ़ॉल्ट ट्रैकिंग व्यवहार को बदलने में सक्षम हैं।

उदाहरण :

using (var context = new BookContext())
{
    context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;

    var books = context.Books.ToList();
}

ट्रैकिंग और अनुमान

  • यदि क्वेरी का परिणाम प्रकार एक इकाई प्रकार नहीं है, भले ही परिणाम contains entity प्रकार contains entity , फिर भी उन्हें tracked by default जाएगा

उदाहरण :

  • निम्नलिखित क्वेरी में, जो एक anonymous type लौटाता है, परिणाम सेट में Book के उदाहरणों को will be tracked किया will be tracked

     using (var context = new BookContext())
     {
        var book = context.Books.Select(b => new { Book = b, Authors = b.Authors.Count() });
     }
    
  • परिणाम सेट तो does not कोई भी entity प्रकार है, तो no tracking किया जाता है

उदाहरण :

  • निम्नलिखित क्वेरी में, जो इकाई से कुछ मूल्यों के साथ एक anonymous type लौटाता है (लेकिन वास्तविक entity प्रकार का no instances ), कोई ट्रैकिंग प्रदर्शन नहीं है।

    using (var context = new BookContext())
    {
       var book = context.Books.Select(b => new { Id = b.BookId, PublishedDate = b.Date });
    }
    


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow