在Web.Config中阻止实体框架继承

时间:2016-09-01 11:43:48

标签: asp.net asp.net-mvc entity-framework inheritance iis

我在另一个父MVC应用程序的IIS8.5中运行了一个子MVC应用程序。

正如预期的那样,子应用程序继承了父Web.Config个设置。

我遇到的问题是子应用程序继承了我需要阻止它执行的<EntityFramework>部分。我如何实现这一目标?

seen a number of different questions提出了一个非常相似的问题,但没有一个有效防止<EntityFramework>继承。

我到目前为止尝试过:

  • 发布子应用程序的应用程序池
  • 将目录更改为虚拟目录
  • 添加<virtualDirectoryDefaults allowSubDirConfig="false" />applicationHost文件
  • enableConfigurationOverride="false"添加到应用程序池 applicationHost文件
  • 中的个人资料

更新
我特别关注代码优先迁移的问题。以下<context>继承自父Web.config文件,但在子应用程序中不需要:

<context type="SomeApp.Models.DataContext, SomeApp">
    <databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[SomeApp.Models.DataContext, SomeApp], [SomeApp.Migrations.Configuration, SomeApp]], EntityFramework, PublicKeyToken=someToken">
        <parameters>
            <parameter value="SomeConnection_DatabasePublish" />
        </parameters>
    </databaseInitializer>
</context>

主要问题是此上下文依赖于不在子应用程序中的dll。

1 个答案:

答案 0 :(得分:1)

在父应用程序的web.config文件中,将location元素设置为inheritInChildApplications的{​​{1}}元素中包含您不希望继承的元素:

false

location Element (ASP.NET Settings Schema)