2017-03-26 46 views
1

我有一個包含實體框架部分的web.config文件設置。Asp.net 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

您可以右鍵點擊Web.Debug.config在Visual Studio解決方案資源管理器和測試轉換,確認上下文元素被插入到你的網站轉化.config –

+0

當你說你想要使用調試轉換時,你是將站點部署到調試服務器還是隻需按F5來運行應用程序? – DavidG

+0

可以使用F5進行刪除。設置是否正確? – barteloma

回答

0

Visual Studio不使用調試配置轉換,它只會使用基本的web.config文件。您需要做的是將實體框架配置添加到基本文件,並在發佈版本中將其刪除。例如,你的發佈配置:

<entityFramework> 
    <contexts xdt:Transform="Remove" /> 
</entityFramework>