【发布时间】:2013-11-29 09:45:14
【问题描述】:
我正在使用 VS2013 创建一个 Asp.Net MVC 项目,并使用 nuget 添加 hottowel (2.0.1)。但是,微风不适用于 Entity Framework 6。
如何将创建项目的Entity Framework 6降级为EF5?
【问题讨论】:
标签: .net entity-framework
我正在使用 VS2013 创建一个 Asp.Net MVC 项目,并使用 nuget 添加 hottowel (2.0.1)。但是,微风不适用于 Entity Framework 6。
如何将创建项目的Entity Framework 6降级为EF5?
【问题讨论】:
标签: .net entity-framework
在项目的 nuget 包控制台中(在下拉列表中选择它)输入:
Uninstall-package EntityFramework
Install-Package EntityFramework -version 5.0.0
【讨论】:
Entity Framework 还将__MigrationHistory 表从系统表移动到用户表。当我在回滚后尝试运行我的应用程序时,它不起作用,所以我不得不将__MigrationHistory 移回系统表:
EXEC sys.sp_MS_marksystemobject __MigrationHistory;
当我升级到 EntityFramework 6 时,我不得不添加一个空迁移(不幸的是我不记得原因,但我猜它抱怨更新数据库或类似的东西)。我还必须删除那个空迁移。由于这是一个完全空的迁移,我想这样做是安全的,我不知道实际更改数据库的迁移。但是,他们在运行程序时可能不会抱怨。
delete from dbo.__MigrationHistory where MigrationId = 'myEmptyMigration';
然后我从我的项目中删除了解决我的问题的空迁移文件。
【讨论】:
标有“(废弃)”的 Breeze 包旨在与 EF5 和 WebApi 一起使用。 “当前”包(未标记为过时的包)均适用于 WebApi2 和 EF6。目前没有将 EF5 与 WebApi2 混合和匹配的选项。如果这很重要,请将其添加到Breeze User Voice
【讨论】:
我意识到这是一个已经有答案的旧帖子,但我想我会添加这个小块。
如果您有许多使用 Entity Framework 的项目并且想要全部降级,请先手动更改其中一个项目,然后刷新包描述页面,您将获得 Consolidate as an Action。选择此项,然后选择版本 5.0.0,这将使您将所有项目降级到 5.0.0
【讨论】:
在包管理器控制台上写
PM>卸载包EntityFramework
PM> 安装包EntityFramework -version 5.0.0
【讨论】: