【发布时间】:2016-09-09 13:49:01
【问题描述】:
我正在开发一个新项目 - 我想使用最新的 .NET Core 来完成它。
阅读文档后,我发现了 Entity Framework Core 和 Entity Framework 6.x 的比较。 Here
我需要的一些功能例如:Spatial Data Type 不受 EF Core 支持。所以我不能使用它,因为项目中需要空间数据类型。
再次浏览文档,我发现了有关如何将 EF 6.x 与 .NET Core 一起使用的链接:Here
在它提到的文章中(Here):
开始之前,请确保针对完整的 .NET 进行编译 您的 project.json 中的框架作为实体框架 6 不支持 .NET 核心。如果您需要跨平台功能,则需要 升级到 Entity Framework Core。
我真的不需要我的项目是跨平台的。
文章中关于如何使用 EF6 和 ASP.NET Core 不是很清楚。
我创建了一个新的ASP.NET Core Web Application
然后我使用 Nuget 包管理器安装了 EF6,并收到以下错误
我从project.json 中的框架中删除了netcoreapp1.0,并添加了net46 作为框架,这消除了EF 的错误,但现在我遇到了另一个错误。
那么如何将 EF6 与 ASP.NET 核心一起使用?
当我使用 EF6 时,我必须删除所有对 .NET Core 的引用,是否 这意味着我没有使用 .NET Core?这个除了不能跨平台运行还有什么缺点?
【问题讨论】:
-
ASP.NET Core 和 .NET Core 是不同的东西。创建 ASP.NET Core 项目时,可以选择是针对 .NET Framework 还是针对 .NET Core 进行构建。您需要执行前者才能使用 EF6。如果您创建了一个针对 .NET Core 构建的项目,那么您应该放弃它并创建一个针对 .NET Framework 构建的新项目。它们是“新项目”对话中的不同选项。
-
@jmcilhinney 所以我需要创建一个 ASP.NET Core Web 应用程序 (.NET Framework) 项目?
-
就是这个。
-
@jmcilhinney 我将在单独的类库项目中添加我的实体 - 我必须使用哪种类型的类库项目? .NET Core 类库还是面向 .NET Framework 的传统类库?
-
如果你不想跨平台应用。为什么不能在 4.6 和 EF 6 中创建常规 MVC 应用程序。
标签: entity-framework entity-framework-6 asp.net-core entity-framework-core asp.net-core-1.0