2017-08-29 7 views
15

निम्नलिखित सांत्वना आवेदन (नेट कोर 2.0) में, scaffold-dbcontext निम्नलिखित DbContextAddDbContext को कॉन्फ़िगरेशन के साथ बुलाया गया था, लेकिन संदर्भ प्रकार 'MyContext' केवल पैरामीटर रहित कन्स्ट्रक्टर घोषित करता है?

public partial class MyContext : DbContext 
{ 
    public virtual DbSet<Tables> Tables { get; set; } 

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 
    { 
     if (!optionsBuilder.IsConfigured) { optionsBuilder.UseSqlServer(Program.Conn); } 
    } 

    protected override void OnModelCreating(ModelBuilder modelBuilder) { .... } 
} 

बनाया मुख्य() (static void Main(string[] args)), निम्नलिखित कोड

var services = new ServiceCollection(); 
var conn = configuration.GetConnectionString("MySource"); 
services.AddDbContext<MyContext>(o => o.UseSqlServer(conn)); // Error 

निम्नलिखित रन हो गया समय त्रुटि?

AddDbContext को कॉन्फ़िगरेशन के साथ बुलाया गया था, लेकिन संदर्भ प्रकार 'MyContext' केवल पैरामीटर रहित कन्स्ट्रक्टर घोषित करता है। इसका मतलब है कि विन्यास AddDbContext के लिए पारित

उत्तर

23

इस्तेमाल किया जा कभी नहीं होगा त्रुटि के रूप में यह कहा कि अगर आप कॉन्फ़िगर अपने MyContextAddDbContext के माध्यम से तो आप नीचे दिए की तरह अपने MyContext वर्ग में एक निर्माता है कि प्रकार DbContextOptions<MyContext> की एक पैरामीटर प्राप्त जोड़ने की जरूरत भी

public MyContext(DbContextOptions<MyContext> options) 
    : base(options) 
{ } 

आप ऐसा नहीं करते हैं, ASP.Net कोर विन्यास आप AddDbContext के साथ सेट इंजेक्षन करने में सक्षम नहीं होगा।

+2

धन्यवाद। मैंने सोचा कि डिफ़ॉल्ट मचान कोड को बदला नहीं जाना चाहिए। हालांकि, अब मेरे पास एक और मुद्दा है - मुझे कनेक्शन स्ट्रिंग नहीं मिल रही है, मैंने यहां एक प्रश्न पोस्ट किया है, https://stackoverflow.com/questions/45948141/configuration-getconnectionstringmyconn-got-null-value। – ca9163d9

+0

अभी मैं शून्य कनेक्शन स्ट्रिंग के कारण अंतिम परीक्षण नहीं कर सकता, मुझे परीक्षण के लिए कनेक्शन स्ट्रिंग को हार्ड कोड करने का प्रयास करें .... हाँ, परिवर्तन काम करता है। धन्यवाद। – ca9163d9

+0

नोट: यह आंशिक वर्ग है, इसलिए यदि आप अपने संदर्भ को स्वत: उत्पन्न कर रहे हैं तो आपको दूसरी फ़ाइल में कन्स्ट्रक्टर जोड़ना चाहिए –

संबंधित मुद्दे

 संबंधित मुद्दे