我有一个包含实体框架部分的web.config文件设置。
Web.config文件
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
但我想在调试时使用数据库初始化程序。所以我想在Web.Debug.config
文件中使用实体框架部分。
带有xdt:Transform="Insert"
的Web.Debug.config文件:
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<entityFramework>
<contexts xdt:Transform="Insert">
<context type="MyProject.DashboardContext, MyProject.Data">
<databaseInitializer type="MyProject.ContexttInitializer, MyProject.Data"></databaseInitializer>
</context>
</contexts>
</entityFramework>
但这不会运行ContexttInitializer
类。如果我在Web.config文件中添加此部分,它将运行。
答案 0 :(得分:0)
Visual Studio不使用调试配置转换,它只使用基本web.config
文件。您需要做的是将Entity Framework配置添加到基本文件并在发行版中删除它。例如,您的发布配置:
<entityFramework>
<contexts xdt:Transform="Remove" />
</entityFramework>