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

2 अलग-अलग वर्गों में उपयोग किए जाने वाले स्वामित्व वाले प्रकार के साथ ईएफ कोर कॉन्फ़िगरेशन समस्या

अपडेट करें (EF Core 3.x):

अभी भी EntityTypeBuilder प्राप्त करने का कोई सार्वजनिक तरीका नहीं है , लेकिन कम से कम कंस्ट्रक्टर तर्क को IMutableEntityType . के रूप में संशोधित किया गया है टाइप करें, इसलिए केवल

using Microsoft.EntityFrameworkCore.Metadata.Builders;

जरूरत है, और संबंधित कोड अब है

var entityTypeBuilder = new EntityTypeBuilder(entityType);

मूल (EF Core 2.x):

समस्या यह है कि ClrType स्वामित्व वाली इकाई प्रकार की पहचान करने के लिए पर्याप्त नहीं है, इसलिए modelBuilder.Entity(Type) EntityTypeBuilder . प्राप्त करने के लिए उपयोग नहीं किया जा सकता है इकाई गुणों को धाराप्रवाह रूप से कॉन्फ़िगर करने के लिए आवश्यक उदाहरण।

ऐसा लगता है कि कोई अच्छा सार्वजनिक नहीं है ऐसा करने का तरीका EF Core 2.x में है, इसलिए मैं केवल सुझाव दे सकता हूं कि कुछ EF Core आंतरिक का उपयोग करें। (सामान्य आंतरिक उपयोग चेतावनी के तहत सौभाग्य से सार्वजनिक रूप से सुलभ)।

आपको निम्न की आवश्यकता होगी using रों:

using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Microsoft.EntityFrameworkCore.Metadata.Internal;

पहला EntityTypeBuilder . के लिए है वर्ग, दूसरा AsEntityType() . के लिए है एक्सटेंशन विधि जो आपको IEntityType . को लागू करने वाले आंतरिक वर्ग तक पहुंच प्रदान करती है , और विशेष रूप से Builder संपत्ति।

संशोधित कोड इस तरह दिखता है:

var entityTypes = modelBuilder.Model.GetEntityTypes()
    .ToList();

foreach (var entityType in entityTypes)
{
    var properties = entityType
        .GetProperties()
        .ToList();

    // (1)
    var entityTypeBuilder = new EntityTypeBuilder(entityType.AsEntityType().Builder);

    foreach (var property in properties)
    {
        if (property.PropertyInfo == null)
        {
            continue;
        }

        if (property.PropertyInfo.PropertyType.IsBoolean())
        {
            entityTypeBuilder // (2)
            .Property(property.Name)
            .HasConversion(new BoolToZeroOneConverter<short>())
            .HasColumnType("tinyint(1)");
        }
    }
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. फॉर्म को साफ करना और मान्य करना php

  2. PHP और MySql जांचें कि क्या तालिका खाली है

  3. आईडी कैसे विदेशी कुंजी असाइन कर सकती है mysqli

  4. कमांड लाइन के माध्यम से विंडोज़ पर mysqldump का उपयोग करके SQL फ़ाइल कैसे आयात करें

  5. Mysql InnoDB प्रदर्शन अनुकूलन और अनुक्रमण