मैं पिछले कुछ समय से प्रोजेक्ट पर काम कर रहा हूं और मैं बिना किसी समस्या के माइग्रेशन जोड़ने में सक्षम था, लेकिन एक या दो सप्ताह पहले मैंने अपने संदर्भ वर्ग से sql सर्वर से कनेक्ट करने के लिए
onconfiguring optionsbuilder.useSqlServer का उपयोग करने से संक्रमण किया। डेटाबेस से जुड़ने के लिए स्टार्टअप क्लास की सेवाओं का उपयोग करना
जब मैं ऐड-माइग्रेशन चलाने की कोशिश करता हूं तो मुझे यह त्रुटि मिलती है
'MojDbContext' प्रकार की वस्तु बनाने में असमर्थ। डिज़ाइन समय पर समर्थित विभिन्न पैटर्न के लिए
कार्यक्रम वर्ग
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
public class Startup
{
public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<mojDbContext>(options=> options.UseSqlServer(Configuration.GetConnectionString("ererer")));
services.AddControllersWithViews();
services.AddMvc();
services.AddDistributedMemoryCache();
services.AddSession();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseSession();
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
}
कोड को छोटा रखने के लिए हटाए गए dbset गुणों के साथ मेरा संदर्भ वर्ग
public class mojDbContext : DbContext
{
public mojDbContext(DbContextOptions<mojDbContext> options)
: base(options)
{
}
}
https://i.stack.imgur.com/Rn7Op.png
2 जवाब
IDesignTimeDbContextFactory इंटरफ़ेस को लागू करके आप माइग्रेशन को अपना DbContext बनाने का तरीका बता सकते हैं: यदि इस इंटरफ़ेस को लागू करने वाला वर्ग या तो व्युत्पन्न DbContext के समान प्रोजेक्ट में या एप्लिकेशन के स्टार्टअप प्रोजेक्ट में पाया जाता है, तो टूल DbContext बनाने के अन्य तरीकों को बायपास करते हैं। और इसके बजाय डिज़ाइन-टाइम फ़ैक्टरी का उपयोग करें।
https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dbcontext-creation
आपको dbset टूर dbcontext जोड़ने की आवश्यकता है
public class mojDbContext : DbContext
{
public mojDbContext(DbContextOptions<mojDbContext> options)
: base(options)
{
}
public DbSet<YourTable> YourTable{ get; set; }
}
संबंधित सवाल
नए सवाल
c#
C # (उच्चारण "तेज देखें") Microsoft द्वारा विकसित एक उच्च स्तरीय, सांख्यिकीय रूप से टाइप किया हुआ, बहु-प्रतिमान प्रोग्रामिंग भाषा है। C # कोड आमतौर पर Microsoft के .NET परिवार के टूल और रन-टाइम को लक्षित करता है, जिसमें .NET फ्रेमवर्क, .NET कोर और Xamarin अन्य शामिल हैं। C # या C # के औपचारिक विनिर्देश में लिखे गए कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें।