PDA

View Full Version : دلیل پیاده سازی IDesignTimeDbContextFactory در لایه ef core



jaykob
سه شنبه 21 اسفند 1397, 08:41 صبح
با سلام

من خواستم بدونم دلیل پیاده سازی کلاس زیر در لایه ef که بر پایه onion architecture پیاده سازی شده چی هست ؟ و عملا چه کاری انجام می ده ؟ و بخواهیم رشته Connection string را از app setting بخونه باید چه کاری انجام بدیم ؟

با تشکر

anubis_ir
سه شنبه 21 اسفند 1397, 12:07 عصر
چون ممكنه DbContext شما وابستگي‌هاي زيادي بهش تزريق شده باشه، پيدا كردنشون در زمان ساخت migrations ممكن هست دردسر ساز باشه. به همين جهت توسط اين كلاس ويژه مشخص مي‌كنيد كه چطور بايد اين DbContext رو وهله سازي كرد.

jaykob
سه شنبه 21 اسفند 1397, 12:22 عصر
چون ممكنه DbContext شما وابستگي‌هاي زيادي بهش تزريق شده باشه، پيدا كردنشون در زمان ساخت migrations ممكن هست دردسر ساز باشه. به همين جهت توسط اين كلاس ويژه مشخص مي‌كنيد كه چطور بايد اين DbContext رو وهله سازي كرد.

سلام

تشکر از پاسخ خوبتون . چطور می تونم رشته connection string رو جدا کنم که بعد از Publish مثل پروژه وب از داخل appjson عوض کنم ؟ الان داخل یک class library نوع .net standard هستم



class TestDbContextFactory : IDesignTimeDbContextFactory<TestDbContext>
{
public TestDbContext CreateDbContext(string[] args)
{
var builder = new DbContextOptionsBuilder();
return new TestDbContext(builder.UseSqlServer(@"data source=.;integrated security=true;initial catalog=testdbb").Options);
}
}



تشکر از شما