我正在探索新的实体框架核心(不与ASP.NET结合使用,也不是在Linux下,我的编码只是一个经典的Winforms应用程序,该应用程序是由Windows 7 64下的Visual Studio构建的经典Winforms应用程序 - 使用sqlite作为数据库引擎)。
-
试图重现此示例,我发现我需要
dotnet.exe
工具,该工具不是Visual Studio 2015的一部分,并且可以使用.NET Core Tools预览Visual Studio。 -
安装后,我遇到了另一个错误:尝试执行
dotnet ef migrations add InitialCreate -c SqliteEfcExampleContext
:No executable found matching command "dotnet-ef"
。 -
我然后在一个提示上搜索了我需要用nuget安装
Microsoft.EntityFrameworkCore.Tools.DotNet
。 -
它拒绝安装,说我需要一个较新的nuget本身。因此,我已经从
https://dotnet.myget.org/F/nuget-beta/vsix/
更新了Nuget。
但我仍然无法安装 Microsoft.EntityFrameworkCore.Tools.DotNet
-它说"严重性代码描述项目文件行抑制状态错误软件包'microsoft.entityframeworkcore.tools.dotnet 1.1.0-preview4-final'具有一个软件包类型'dotnetClitool'不受项目" sqliteefcexample"的支持。
我如何创建迁移?
我自己找到了答案,让我再次分享...
执行问题中描述的步骤
-
安装了Windows Management框架5.0以更新PowerShell。
-
去
Tools - NuGet Package Manager - Package Manager Console
手动执行以下命令:PM> Install-Package Microsoft.EntityFrameworkCore.Tools -Pre
。 -
然后,我找到了相关的包装管理器控制台命令(add-mogration,update-database,ackaffold-dbcontext等),并使用
Add-Migration SqliteEfcExampleContext
来生成我已经编写的模型代码的迁移代码。
更新:
任务一直在继续,我遇到了另一个问题-... violates the constraint of type 'TContext'
错误试图使用上述命令。我已经将其与解决方案一起描述了,以回答有关在略有不同上下文中发现的相同错误的问题。