gpt4 book ai didi

entity-framework - 在web.config中定义 Entity Framework SetInitializer

转载 作者:行者123 更新时间:2023-12-03 14:47:12 25 4
gpt4 key购买 nike

现在,在开发中,我在Global.asax.cs文件中具有以下代码,该代码使用我的SeedSampleData方法调用Entity Framework(v4.1)SetInitializer。所有这一切都完美。

但是,我想通过web.config设置存储SetInitializer“ strategy”参数,以便我可以创建一个部署脚本,该脚本将在生产部署期间自动将其设置为new System.Data.Entity.CreateDatabaseIfNotExists<EfDbContext>()而不是我的seed方法。

希望将其移至web.config的原因是,当我向生产服务器推出新的部署时,我想确保我不会意外地将种子初始化程序保留在代码中。

protected void Application_Start()
{
//TODO: Figure out how to move the following lines to web.config and have a deployment script modify it when going to production.

//This line is for production
//System.Data.Entity.Database.SetInitializer(new System.Data.Entity.CreateDatabaseIfNotExists<EfDbContext>());

//This line is for development
System.Data.Entity.Database.SetInitializer(new Domain.Concrete.SeedSampleData());

//... Remainder of Application_Start calls here...
}

最佳答案

如果您更新到EF 4.3(无论如何是个好主意),则可以在Web配置中使用类似的方法:

<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>

<entityFramework>
<contexts>
<context type=" Blogging.BlogContext, MyAssembly">
<databaseInitializer type="Blogging.MyCustomBlogInitializer, MyAssembly" />
</context>
</contexts>
</entityFramework>
</configuration>


罗恩在这里详细介绍了它: http://blogs.msdn.com/b/adonet/archive/2012/01/12/ef-4-3-configuration-file-settings.aspx

如果您确实想继续使用4.1,则可以使用较旧的语法。我在这里写过: http://blog.oneunicorn.com/2011/03/31/configuring-database-initializers-in-a-config-file/

关于entity-framework - 在web.config中定义 Entity Framework SetInitializer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9674659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com