EntityFramework启用迁移时出现ArgumentException异常

3
我是一个初学者,进入了美丽的Microsoft Azure技术世界并制作了我的第一个Hello World网站。下一步是创建一个数据库(entityframework),但在使用PackageManagerConsole(PMC)创建数据库时出现了异常。我在网上阅读了几篇文章,解释说需要将启动项目名称添加到PS命令中,但不幸的是这并没有解决我的问题。
我的解决方案中有2个项目:
“partyonwebsite”是启动项目,显然是我的网站 :). “models”是我设计模型/实体的地方。
在“models”项目中,我有“User”和“UsersDb”类。UsersDb是从DbContext继承的类。 现在,当我在PMC中执行以下行:
enable-migrations -StartUpProjectName "PartyOnWebsite" -ContextTypeName "Models.Users.UsersDb"

我收到以下(不是很有用的)错误提示:
System.ArgumentException: The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))
The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))

我已经查看了get-help enable-migrations并尝试了一些操作,但运气不太好。是否有人遇到了同样的问题?或者你能指导我正确的方向来帮助我解决问题吗?
非常感谢! Bas

尝试在Visual Studio中明确设置启动项目(右键单击->设置为启动项目)为“models”项目,然后只需从PMC运行enable-migrations,而不需要所有的花哨操作,会发生什么? - Greg Smith
同样的故事,参数异常。 - bas
1个回答

5
解决了。如果您遇到相同的问题,请确保 EntityFramework 在单独的“模型”项目中得到正确设置。
  • 在解决方案资源管理器中打开“管理解决方案的 NuGet 包”(右键单击解决方案)
  • 选择“已安装的包”
  • 选择“EntityFramework”并单击“管理”
  • 检查您的“Models”项目(我检查了我的网站项目和“models”项目)
再次运行 enable-migrations 命令。 我还将我的 Website 项目添加了对 Models 项目的项目引用,不知道这是否重要。 在 NuGet 中进行调整后成功执行的命令为:
enable-migrations -ProjectName Models -ContextTypeName Models.Users.UsersDb

希望这个答案能帮助其他在Azure上运行他们的第一个应用程序的人 :).
祝好,
Bas

更改NuGet控制台中的下拉菜单有助于解决错误,但是当我尝试进行Web项目时仍然出现错误,有什么建议吗?当你“管理”时,你做了什么? - Moi Hawk
@MoiHawk 嘿抱歉,这对我来说已经太久了 :). 自那以后从未使用过,所以如果您还没有提出新问题,最好再问一遍。 - bas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接