【发布时间】:2019-10-01 12:56:54
【问题描述】:
在我的解决方案中,我有一个业务层,其中包含一些针对 .NET Framework 4.7 的项目(包括 EntityFramework 数据访问层和大量逻辑)。现在我想用 .NET Core 2.2 制作一个 Web 应用程序。我意识到 .NET Core 与 .NET Framework 不兼容,但 .NET Standard 与两者兼容。将业务层从 .NET Framework 转换为 .NET Standard 或 .NET Core 不是一种选择,因为工作量太大。
我的问题:
是否可以在我的业务层中添加一个 .NET Standard 项目作为中间人,接受来自 .NET Core Web 应用程序的所有请求并在我的 .NET Framework 项目中调用代码(包括访问 EF 数据)?
【问题讨论】:
-
是的,有可能。
-
@hmiedema9:不,不是。如果一个项目依赖于另一个项目,它也会依赖于该项目的所有依赖项。您在构建时可以很容易地看到这一点,因为所有的 DLL,即使是那些没有被项目直接引用的 DLL,都将位于 bin 文件夹中。如果 EF6 在依赖关系树中的任何位置被引用,则不能将其与 .NET Core 项目一起使用(目前,至少 - 3.0 将支持)
-
你可以多目标
-
EF6.3 preview 带来 .net 标准/核心支持,敬请期待 .net core 3 和 EF6.3 发布
-
多目标在这里不会给您带来任何好处。您仍然无法为 .NET Core 目标引用任何 EF6 库,因此您必须将依赖项仅隔离到 .NET Framework 端,然后您仍然需要为 .NET Core 提供某种解决方案目标。
标签: asp.net asp.net-mvc entity-framework asp.net-core .net-standard