EntityFramework enable-migrations ArgumentException

bas*_*bas 2 database database-design entity-framework azure

我是美丽的Microsoft Azure世界中的新生,并成为了我的第一个Hello World网站。下一步是创建数据库(entityframework),但是从PackageManagerConsole(PMC)创建数据库时遇到异常。我在网上阅读了一些帖子,这些帖子解释说我需要将startupprojectname添加到PS命令中,但是不幸的是,这并不能解决我的问题。

我的解决方案中有2个项目。

  • “ partyonwebsite”是启动项目,显然是我的网站:)。
  • 我将在其中设计模型/实体的“模型”。

在“模型”项目中,我有“用户”和“ UsersDb”类。UsersDb是从DbContext继承的类。

现在,当我在PMC中执行以下行时:

enable-migrations -StartUpProjectName "PartyOnWebsite" -ContextTypeName "Models.Users.UsersDb"
Run Code Online (Sandbox Code Playgroud)

我收到以下(不是很有帮助)错误:

System.ArgumentException: The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))
The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))
Run Code Online (Sandbox Code Playgroud)

我看过get-help enable-migrations,玩了一点,但运气并不好。

有人遇到过同样的问题吗?还是您可以指出正确的方向来帮助我解决问题?

在此先多谢!

巴斯

bas*_*bas 5

解决了。如果遇到相同的问题,请确保为单独的“模型”项目正确设置了EntityFramework。

  • 在解决方案资源管理器中打开“管理解决方案的NuGet软件包”(在解决方案资源管理器中右键单击解决方案)
  • 选择“已安装的软件包”
  • 选择“ EntityFramework”,然后单击“管理”
  • 检查您的“模型”项目(我同时检查了我的网站项目和“模型”项目)

再次运行您的enable-migrations命令。

我还从我的Website项目向Models项目添加了一个项目参考,我不知道这是否重要。

在NuGet中进行调整后成功执行的命令:

enable-migrations -ProjectName Models -ContextTypeName Models.Users.UsersDb
Run Code Online (Sandbox Code Playgroud)

希望这个答案可以帮助其他迷路的士兵让他的第一个应用程序在Azure中运行:)。

干杯,

巴斯