我试图将我的EF6配置从myexe.exe.config
转换为代码,作为empty DbProviderFactories node in machine.config
组织的解决方法(此处描述为:https://stackoverflow.com/a/24273922/600559)。我不想更改machine.config
文件。我已阅读Code-Based Configuration (EF6 onwards)。EF6/SQL Server Compact,基于代码的配置
我试过这样的实现:https://stackoverflow.com/a/23130602/600559,但是我无法让它工作。有没有人有EF6/SQL CE /基于代码的配置解决方案?
这里是我的我的变化(从工作的.config解决方案基于代码的解决方案): 新类补充说:
public class DatabaseConfiguration : DbConfiguration
{
public DatabaseConfiguration()
{
SetExecutionStrategy("System.Data.SqlServerCe.4.0",() => new DefaultExecutionStrategy());
SetProviderFactory("System.Data.SqlServerCe.4.0", new SqlCeProviderFactory());
SetProviderServices("System.Data.SqlServerCe.4.0", SqlCeProviderServices.Instance);
}
}
然后在.config
-file的system.data
和entityFramework
节点被删除。
现在这个工作,但是machine.config
文件读取:如果在machine.config
有<DbProviderFactories/>
我得到这个异常:
所以,真正的问题不在于基于代码的配置不起作用,问题在于machine.config
配置仍在读取并导致问题。任何人都知道如何解决此问题?
请拓展:不工作,或无人可以帮你。配置代码是否未被调用,或者您是否收到错误? – ErikEJ
@ErikEJ我已添加更多信息 - 顺便说一句,我是你工作的忠实粉丝 –