如何在模块

时间:2016-02-16 16:52:05

标签: entity-framework module modularization

我正在构建一组组件,让我们称之为服务,即使用实体框架来访问他们的数据。这些组件旨在用于同一解决方案中的多个项目。 我们希望这些组件尽可能“独立”,这意味着我们希望在一个服务中将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服务,并保持模块之间的所有交互“正在进行中”。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

进一步的研究使我确信在同一个项目中有两个版本的EF根本不可能。甚至不希望在同一解决方案中拥有多个版本的EF!我的目标是让“独立”服务(类似于DDD的有限上下文)互相“在进程中”和应用程序进行交互,但这是不可行的。

为了缓解配置问题,我想我应该依靠“配置服务”或者至少通过基于代码的配置(https://msdn.microsoft.com/en-us/data/jj680699.aspx)完成大部分配置,并尽可能地将其屏蔽在应用程序中。