آشنایی با کلاس IDesignTimeDbContextFactory
آخرین بروز رسانی: 1401/07/23
به طور خلاصه IDesignTimeDbContextFactory , یه سازنده (factory) برای ساخت یک نمونه از dbContext ی است که constructor پیش فرض از نوع public (public default constructor) نداره
کی ازش استفاده میکنیم؟
زمانی که dbcontext شما در پروزه ای بجز پروژه start up شما باشه (مثلا در shared library باشه)
نحوه استفاده
این کلاس را در startup assembly یا در پوشه ای که DbContext خود را دارید اضافه کنید و تمام.
public class MyDbContextFactory : IDesignTimeDbContextFactory<MyDbContext>
{
MyDbContext IDesignTimeDbContextFactory<MyDbContext>.CreateDbContext(string[] args)
{
IConfigurationRoot configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
var builder = new DbContextOptionsBuilder<MyDbContext>();
var connectionString = configuration.GetConnectionString("DefaultConnection");
builder.UseSqlServer(connectionString);
return new MyDbContext(builder.Options);
}
}