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

एंटिटी फ्रेमवर्क कोर 2.0:एक बार सार बेस क्लास को कैसे कॉन्फ़िगर करें

अगर मैं सही ढंग से समझूं, तो Status केवल एक आधार वर्ग है, न कि आधार इकाई डेटाबेस विरासत में भाग लेना।

ऐसे मामले में यह महत्वपूर्ण है कि कभी भी Status का संदर्भ न लें सीधे इकाई मॉडल और कॉन्फ़िगरेशन के अंदर वर्ग, यानी कोई DbSet<Status> . नहीं , प्रकार का कोई नेविगेशन गुण नहीं Status या ICollection<Status> , नहीं modelBuilder.Entity<Status>() कॉल और नहीं IEntityTypeConfiguration<Status>

इसके बजाय, आपको हमेशा Status . से विरासत में मिले ठोस प्रकारों का उल्लेख करना होगा . कॉन्फ़िगरेशन कोड का पुन:उपयोग करने के लिए, आपको प्रतिबंधित जेनेरिक . का उपयोग करना चाहिए विधियों या वर्गों और ठोस इकाई प्रकारों को पास करें।

चूंकि आप IEntityTypeConfiguration का उपयोग कर रहे हैं आपके StatusConfiguration . बनाने के लिए शायद सबसे स्वाभाविक है कक्षाएं, सामान्य वर्ग:

public class StatusConfiguration<TEntity> : IEntityTypeConfiguration<TEntity>
    where TEntity : Status
{
    public virtual void Configure(EntityTypeBuilder<TEntity> builder)
    {
        builder.Property(c => c.updateUserName).IsRequired().HasMaxLength(50);
    }
}

और व्युत्पन्न इकाई विन्यास वर्गों को इससे प्राप्त होने दें:

public class ItemConfiguration : StatusConfiguration<Item>
{
    public override void Configure(EntityTypeBuilder<Item> builder)
    {
        base.Configure(builder); // <--
        builder.ToTable("Item", "dbo").HasKey(c => c.Id);
        builder.Property(c => c.Description).IsRequired().HasMaxLength(100);
    }
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MS SQL ON DELETE CASCADE एक ही टेबल की ओर इशारा करते हुए कई विदेशी कुंजियाँ?

  2. पंक्ति, पृष्ठ और टेबल लॉक क्या हैं? और कब उनका अधिग्रहण किया जाता है?

  3. SQL सर्वर लेनदेन लॉग, भाग 3:लॉगिंग मूल बातें

  4. SQL सर्वर सिमेंटिक सर्च के साथ विंडोज फाइल सिस्टम पर दस्तावेजों का भंडारण और विश्लेषण - भाग 2

  5. लॉग के बिना SQL में तालिका के बड़े डेटा को कैसे हटाएं?