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 个文件。
我已经在 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 个文件。