खोज…


टिप्पणियों

एंटिटी फ्रेमवर्क में एंटिटीज में विभिन्न राज्य हो सकते हैं जो System.Data.Entity.EntityState एन्यूमरेशन द्वारा सूचीबद्ध हैं। ये राज्य हैं:

Added    
Deleted    
Detached    
Modified    
Unchanged

एंटिटी फ्रेमवर्क POCO के साथ काम करता है। इसका मतलब है कि इकाइयां सरल वर्ग हैं जिनके पास अपने राज्य का प्रबंधन करने के लिए कोई गुण और विधियां नहीं हैं। ObjectStateManager में Entity state को एक संदर्भ द्वारा प्रबंधित किया जाता है।

यह विषय निकाय स्थिति सेट करने के विभिन्न तरीकों को शामिल करता है।

एकल इकाई का राज्य जोड़ा जाना

EntityState.Added को दो पूरी तरह से समकक्ष तरीकों से सेट किया जा सकता है:

  1. संदर्भ में इसकी प्रविष्टि की स्थिति सेट करके:

     context.Entry(entity).State = EntityState.Added;
    
  2. इसे संदर्भ के DbSet में जोड़कर:

     context.Entities.Add(entity);
    

SaveChanges कॉल करते समय, इकाई को डेटाबेस में डाला जाएगा। जब इसे एक पहचान स्तंभ (एक ऑटो-सेट, ऑटो-इंक्रीमेंटिंग प्राथमिक कुंजी) मिल जाता है, तो SaveChanges बाद, इकाई की प्राथमिक कुंजी संपत्ति में नया उत्पन्न मूल्य शामिल होगा, तब भी जब इस संपत्ति में पहले से ही एक मूल्य था

ऑब्जेक्ट ग्राफ़ के राज्य को जोड़ना

Added ऑब्जेक्ट ग्राफ (संबंधित संस्थाओं का एक संग्रह) की स्थिति को एकल इकाई के रूप में Added से अलग है ( इस उदाहरण को देखें)।

उदाहरण में, हम ग्रहों और उनके चंद्रमाओं को संग्रहीत करते हैं:

कक्षा मॉडल

public class Planet
{
    public Planet()
    {
        Moons = new HashSet<Moon>();
    }
    public int ID { get; set; }
    public string Name { get; set; }
    public ICollection<Moon> Moons { get; set; }
}

public class Moon
{
    public int ID { get; set; }
    public int PlanetID { get; set; }
    public string Name { get; set; }
}

प्रसंग

public class PlanetDb : DbContext
{
    public property DbSet<Planet> Planets { get; set; }
}

हम ग्रहों और उनके चंद्रमाओं को जोड़ने के लिए इस संदर्भ का एक उदाहरण का उपयोग करते हैं:

उदाहरण

var mars = new Planet { Name = "Mars" };
mars.Moons.Add(new Moon { Name = "Phobos" });
mars.Moons.Add(new Moon { Name = "Deimos" });

context.Planets.Add(mars);

Console.WriteLine(context.Entry(mars).State);
Console.WriteLine(context.Entry(mars.Moons.First()).State);

आउटपुट:

Added
Added

क्या हम यहाँ देख कि एक जोड़ने है Planet भी करने के लिए एक चंद्रमा की स्थिति सेट Added

जब किसी इकाई की स्थिति को Added , तो उसके नेविगेशन गुणों में सभी इकाइयां (गुण जो अन्य संस्थाओं की तरह "नेविगेट" करते हैं, जैसे Planet.Moons ) को भी Added , जब तक कि वे पहले से ही संदर्भ से जुड़े नहीं हैं



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