【发布时间】:2015-04-21 21:57:02
【问题描述】:
我正在尝试将我的 EF6 配置从 myexe.exe.config 移动到代码,作为 empty DbProviderFactories node in machine.config 问题的解决方法(此处描述:https://stackoverflow.com/a/24273922/600559)。我不想更改machine.config 文件。
我已阅读Code-Based Configuration (EF6 onwards)。
我已经尝试过这样的实现: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-文件中的system.data 和entityFramework 节点。
现在可以了,但是读取了machine.config 文件:如果在machine.config 中有<DbProviderFactories/>,我会收到此异常:
所以真正的问题不是基于代码的配置不起作用,问题是machine.config 配置仍在被读取并导致问题。有谁知道如何解决这个问题?
【问题讨论】:
-
请扩展:不起作用,或者没有人可以帮助您。是没有调用配置代码,还是报错?
-
@ErikEJ 我添加了更多信息 - 顺便说一句,我是你作品的忠实粉丝
标签: c# entity-framework .net-4.0 sql-server-ce