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

前端之家收集整理的这篇文章主要介绍了entity-framework – 在web.config中定义Entity Framework SetInitializer前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
现在,在开发中,我在Global.asax.cs文件中有以下代码,它使用SeedSampleData方法调用Entity Framework(v4.1)SetInitializer.这一切都很完美.

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

想要将其移动到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/

猜你在找的HTML相关文章