Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

इकाई फ्रेमवर्क/एसक्यूएल2008 - संस्थाओं के लिए LastModified फ़ील्ड को स्वचालित रूप से कैसे अपडेट करें?

मुझे पता है कि मुझे पार्टी में थोड़ी देर हो गई है, लेकिन मैंने इसे एक प्रोजेक्ट के लिए हल किया है जिस पर मैं काम कर रहा हूं और सोचा कि मैं अपना समाधान साझा करूंगा।

सबसे पहले, समाधान को और अधिक पुन:उपयोग करने योग्य बनाने के लिए, मैंने टाइमस्टैम्प गुणों के साथ एक आधार वर्ग बनाया:

public class EntityBase
{
    public DateTime? CreatedDate { get; set; }
    public DateTime? LastModifiedDate { get; set; }
}

फिर मैं अपने DbContext पर SaveChanges विधि को ओवरराइड करता हूं:

public class MyContext : DbContext
{
    public override int SaveChanges()
    {
        ObjectContext context = ((IObjectContextAdapter)this).ObjectContext;

        //Find all Entities that are Added/Modified that inherit from my EntityBase
        IEnumerable<ObjectStateEntry> objectStateEntries =
            from e in context.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified)
            where
                e.IsRelationship == false &&
                e.Entity != null &&
                typeof(EntityBase).IsAssignableFrom(e.Entity.GetType())
            select e;

        var currentTime = DateTime.Now;

        foreach (var entry in objectStateEntries)
        {
            var entityBase = entry.Entity as EntityBase;

            if (entry.State == EntityState.Added)
            {
                entityBase.CreatedDate = currentTime;
            }

            entityBase.LastModifiedDate = currentTime;
        }

        return base.SaveChanges();
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या प्राथमिक कुंजी निष्क्रिय हैं?

  2. SQL सर्वर भूगोल डेटा प्रकार की समझ कैसे बनाएं

  3. मैं SQL में महीने के पहले दिन का चयन कैसे कर सकता हूँ?

  4. SQL सर्वर:XML आउटपुट के साथ दो-स्तरीय GROUP BY

  5. पैरेंट-चाइल्ड चेन के लिए SQL क्वेरी