c# - 在尝试设置实例之前,Entity Framework 使用了默认 DbConfiguration 实例
问题描述
我在使用 EF6 时收到此异常(见下文),很可能是因为在同一个 AppDomain 中已经有一个自定义 DbConfiguration 参数略有不同(但仍然适用于 SQLite)。
- 我无法更改 app.config(因此我正在创建我自己的 DbConfiguration 关联到我的 DbContext 类)。
我也无法更改已经调用 DbConfiguration.SetConfiguration (.,.) 的第 3 方代码。
我已经尝试在我的 DbContext 上为 DbConfigurationType 提供“SqliteConfiguration”类型(但仍然是相同的例外)。
异常 InvalidOperationException:在尝试设置“SqliteConfiguration”实例之前,Entity Framework 使用了默认 DbConfiguration 实例。'SqliteConfiguration' 实例必须在应用程序启动时设置,然后才能使用任何实体框架功能,或者必须在应用程序的配置文件中注册。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260883。
我的问题是:
我应该在创建\操作我的 DbDontext 的地方创建辅助 AppDomain 吗?(带有包装层(例如用于 CRUD 操作)。
如果是,是否有任何已知的性能缺陷?
假设我无法更改第 3 方代码,还有其他解决方案吗?
解决方案
推荐阅读
- r - 在 R 中:将类似文件放在具有相同前缀的文件夹中
- java - 在数字为 6 之后获取的数字,但我想要所有数字
- python - pytest 模拟我自己在测试函数中导入的模块
- javascript - 条纹订阅 JS 问题
- r - 使用 DPLYR full_join 加入 3 个大数据帧时,如何修复错误:std::bad_alloc 消息?
- swift - 可选仅在条件编译块中设置,编译器是否从发布版本中完全删除语句?
- php - WooCommerce 订单列的重新排序
- ruby-on-rails - Ruby on Rails 测试失败或成功取决于测试套件的调用方式
- php - 翻译 functions.php 中的字符串 Loco Translate
- python - 跨两个不同列的平均值