Entity Framework 是否需要 class 库中自动生成的 app.config?

Is autogenerated app.config in class library necessary for Entity Framework?

我已经在 Visual Studio 中安装了 Entity Framework via NuGet Package Manager。在我安装这个包的每个项目中,都会出现一个 app.config 文件,看起来完全像这样:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    </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>
    <connectionStrings>
        <add name="DatabaseContext" connectionString="data source=(LocalDb)\MSSQLLocalDB;initial catalog=Namespace.ContextName;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

我想知道此信息是否仅在 启动项目(和单元测试项目)中是必需的。我可以从仅使用 DbContext 的 class 库项目中删除 app.config 文件吗?

是的,您可以将它们从您的项目中删除,并将其保留在启动项目中。但是您的主项目也应该对 EF 包有引用。因此,当您调试或构建版本时,您的卫星 dll 实际上将使用您的启动项目的 app.config 文件。

记住...当您通过 nuget 升级 EF 或其他包时,它会再次添加 app.config 个文件。