我正在尝试将我的 EF6 配置从myexe.exe.config
编码作为解决方法empty DbProviderFactories node in machine.config
-问题(此处描述:https://stackoverflow.com/a/24273922/600559 https://stackoverflow.com/a/24273922/600559)。我不想改变machine.config
file.
我已阅读基于代码的配置(EF6 及以上版本) https://msdn.microsoft.com/en-us/data/jj680699.aspx.
我尝试过这样的实现:https://stackoverflow.com/a/23130602/600559 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);
}
}
然后system.data
and entityFramework
中的节点.config
- 文件被删除。
现在这可行了,但是machine.config
文件被读取:如果有<DbProviderFactories/>
in machine.config
我得到这个例外:
所以真正的问题不是基于代码的配置不起作用,问题是machine.config
仍在读取配置并导致问题。有人知道如何解决这个问题吗?