在 Visual Studio 2015 中,我创建了一个 ASP.net Core 项目(以前称为 ASP.NET 5)。该项目的模板为持久性创建了一个 MS SQL localdb,以及实体框架和一些身份验证表。
在弄清楚如何浏览为此项目创建的 localdb 数据库后,我决定尝试修改模型对象并尝试使用 ASP.NET MVC 网站模板示例应用程序进行代码优先迁移。它使用 EF 为 localdb 提供登录持久性。我尝试使用
演示应用程序已经包含一个 Migrations 文件夹。但是,如果您add-migration SomeNameHere
在包管理器控制台中键入,或者enable-migrations
似乎无法将 ER 迁移与示例项目一起使用。
我向单元添加了一个字符串属性IdentityModel.cs
,并尝试手动将其手动添加到0000...IdentitySchema.cs
文件中,但显然我不知道如何正确执行此操作,因为当我运行应用程序时,出现了一些错误,如下所示。我相信我基本上需要让实体框架代码优先工具生成一些将进入迁移文件夹的骨架 .cs 单元。
人们现在建议做的通常的事情是:
- 确保您以管理员身份运行。(完毕)
- 确保您卸载实体框架并将其重新安装到您希望它处于活动状态的解决方案中(完成)
从包管理器控制台重新安装看起来像这样:
PM> Uninstall-Package EntityFramework
Uninstalling NuGet package EntityFramework.7.0.0-beta4.
Successfully uninstalled 'EntityFramework.7.0.0-beta4' from WebApplicationDNX.
PM> Install-Package EntityFramework -IncludePrerelease
Installing NuGet package EntityFramework.7.0.0-beta4.
Successfully installed 'EntityFramework.7.0.0-beta4' to WebApplicationDNX.
PM>
在这里,我相信我犯了一个错误,因为我正在尝试运行像 add-migration 这样的命令,但我无法做到。事实证明,我从未支持过这样的尝试:
PM> add-migration DummyMigrate
add-migration : The term 'add-migration' is not recognized as the name of a cmdlet, function, script file, or operable program. ....
PM> enable-migration
enable-migration : The term 'enable-migration' is not recognized as the name of a cmdlet, function, script file, or operable program.
...
是否可以从基于ASP.NET 5 Preview Templates -> Web Site
模板的应用程序从 Visual Studio 2015 迁移实体框架?
(更新 1 到 4 被删除,因为它们用于无用的历史测试版)
更新 5:在 asp.net core 1.0.0-RC2 中,dnx 工具已经消失,取而代之的是 dotnet,但基本原则是dotnet ef
命令必须从项目源目录而不是解决方案目录运行,并且这样做,您可能应该使用外部命令提示符或使用适用于 Visual Studio 的 PowerShell 工具,而不是 nuget 命令行提示符。
solution-dir project-source-dir
| |
d:\dev\AspNetCoreWebAp\src\AspNetCoreWebAp>dotnet ef
Project AspNetCoreWebAp (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing
Compiling AspNetCoreWebAp for .NETCoreApp,Version=v1.0
Compilation succeeded.
0 Warning(s)
0 Error(s)
Time elapsed 00:00:03.0846647
_/\__
---==/ \\
___ ___ |. \|\
| __|| __| | ) \\\
| _| | _| \_/ | //|\\
|___||_| / \\\/\\
Entity Framework .NET Core CLI Commands 1.0.0-preview1-20901
Usage: dotnet ef [options] [command]