如何在模块中Entity Framework配置"Self Contained"
How to Entity Framework configuration "Self Contained" in Module
我正在构建一组组件,我们称它们为服务,它们使用 entity framework 来访问它们的数据。这些组件旨在用于同一解决方案中的多个项目。
我们希望尽可能多地使用这些组件 "independent",这意味着我们希望 Entity Framework 在一个服务中从 5 升级到 6,而在另一个服务中保留 EF5。我们的解决方案可能如下所示:
Solution
+- Application1 (referencing ServiceA and ServiceB)
+- Application2 (referencing ServiceA and ServiceC)
+- ...
+- ServiceA - Dll Using Entity Framework 5
+- ServiceB - Dll Using Entity Framework 5
+- ServiceC - Dll Using Entity Framework 6
对于 Application1,我们没有任何问题,因为我们可以将 EF5 作为 nuget 包安装在其中,并让 ServiceA 和 ServiceB 使用它,但是 Application2 呢?我无法想出在一个项目中同时使用 EF5 和 EF6 的方法...
那么配置呢?有没有办法只为 ServiceA 和 ServiceB 编写一次配置,而不必为每个使用它们的应用程序重复配置?我宁愿避免制作 ServiceA 和 ServiceB web 服务并保持模块之间的所有交互 "in process".
提前致谢!
进一步的研究使我确信,在同一个项目中使用两个版本的 EF 是根本不可能的。甚至不可取的是在同一个解决方案中有多个版本的 EF!我的目标是让 "independent" 服务(类似于 DDD 的限界上下文)相互交互 "in process" 并与应用程序交互,但这是不可行的。
为了缓解配置问题,我想我应该依赖 "configuration service" 或至少通过基于代码的配置 (https://msdn.microsoft.com/en-us/data/jj680699.aspx) 进行大部分配置并尽可能地屏蔽它应用程序。
我正在构建一组组件,我们称它们为服务,它们使用 entity framework 来访问它们的数据。这些组件旨在用于同一解决方案中的多个项目。 我们希望尽可能多地使用这些组件 "independent",这意味着我们希望 Entity Framework 在一个服务中从 5 升级到 6,而在另一个服务中保留 EF5。我们的解决方案可能如下所示:
Solution
+- Application1 (referencing ServiceA and ServiceB)
+- Application2 (referencing ServiceA and ServiceC)
+- ...
+- ServiceA - Dll Using Entity Framework 5
+- ServiceB - Dll Using Entity Framework 5
+- ServiceC - Dll Using Entity Framework 6
对于 Application1,我们没有任何问题,因为我们可以将 EF5 作为 nuget 包安装在其中,并让 ServiceA 和 ServiceB 使用它,但是 Application2 呢?我无法想出在一个项目中同时使用 EF5 和 EF6 的方法... 那么配置呢?有没有办法只为 ServiceA 和 ServiceB 编写一次配置,而不必为每个使用它们的应用程序重复配置?我宁愿避免制作 ServiceA 和 ServiceB web 服务并保持模块之间的所有交互 "in process".
提前致谢!
进一步的研究使我确信,在同一个项目中使用两个版本的 EF 是根本不可能的。甚至不可取的是在同一个解决方案中有多个版本的 EF!我的目标是让 "independent" 服务(类似于 DDD 的限界上下文)相互交互 "in process" 并与应用程序交互,但这是不可行的。
为了缓解配置问题,我想我应该依赖 "configuration service" 或至少通过基于代码的配置 (https://msdn.microsoft.com/en-us/data/jj680699.aspx) 进行大部分配置并尽可能地屏蔽它应用程序。