das*_*dot 6 .net c# migration entity-framework ef-code-first
在我们的项目中成功使用实体框架迁移.但是现在我遇到了一个特殊情况,我需要更新一个需要一些业务逻辑的表(在我们的应用程序中作为C#代码).因此,我尝试在迁移Up
方法中生成一个线程,并使用业务逻辑执行此表更新.应用程序执行不需要此表更新,应在后台进行.
我这样做有点像这样:
public partial class MyMigration : DbMigration
{
public override void Up()
{
// ... do some sql migration here ...
// after executing the sql migrations custommethod should run
// migration seems to wait until CustomMethod finished work
new Thread(() => ExecuteCustomMethodDatabaseContext()).Start();
}
}
Run Code Online (Sandbox Code Playgroud)
我希望该Up
方法在启动线程后返回,EF将MigrationHistory中的迁移设置为完成.因此,应用程序可以启动,并在后台的某个地方更新表.
但事实并非如此,迁移似乎在线程运行时运行(这需要很多时间).
所以我的问题是:
DbMigration 上的 Up 和 Down 方法只是构建一个内存中模型,稍后将其转换为 SQL。您有两种执行自定义逻辑的选项:
归档时间: |
|
查看次数: |
1971 次 |
最近记录: |