目前我尝试将我的数据模型分离到同一解决方案中的不同项目中,首先是代码。如果我只有一个安装了EF(6.1.3)的项目,则迁移(Enable-Migration
,Add-Migration
)按预期工作。
但是当我添加其他项目并安装EF数据包时,如果我尝试Enable-Migration
,我就会收到此错误:
Join-Path : Cannot bind argument to parameter 'Path' because it is null.
At C:\projects\IMS 2\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:713 char:27
+ $toolsPath = Join-Path <<<< $installPath tools
+ CategoryInfo : InvalidData: (:) [Join-Path], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.JoinPathCommand
Join-Path : Cannot bind argument to parameter 'Path' because it is null.
At C:\projects\IMS 2\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:780 char:73
+ $utilityAssembly = [System.Reflection.Assembly]::LoadFrom((Join-Path <<<< $ToolsPath EntityFramework.PowerShell.Utility.dll))
+ CategoryInfo : InvalidData: (:) [Join-Path], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.JoinPathCommand
You cannot call a method on a null-valued expression.
At C:\projects\IMS 2\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:781 char:50
+ $dispatcher = $utilityAssembly.CreateInstance <<<< (
+ CategoryInfo : InvalidOperation: (CreateInstance:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
Join-Path : Cannot bind argument to parameter 'Path' because it is null.
At C:\projects\IMS 2\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:810 char:19
+ (Join-Path <<<< $runner.ToolsPath EntityFramework.PowerShell.dll),
+ CategoryInfo : InvalidData: (:) [Join-Path], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.JoinPathCommand
EF似乎在两个项目中都运行良好。将EF重新安装到其中一个或两个项目都无法解决问题。有什么解决方案吗?
编辑:我开始了一个包含3个项目的新解决方案,1。用于basecontext(public class BaseContext<TContext> : DbContext where TContext : DbContext
...),2。用于基类,3。用于创建基于上下文和类的上下文。如果我只将ef放入其中,那么迁移就可以了,或者至少告诉我它无法找到上下文,但是如果我将它安装到多个上下文中,那么它会再次产生错误。
答案 0 :(得分:0)
我今天发现了同样的问题,我不得不卸载EF并重新安装。
PM&GT; Uninstall-Package EntityFramework -Force
PM&GT; Install-Package EntityFramework -Pre
答案 1 :(得分:0)
好的,解决了,问题不是EF或VS2015,而是我的Windows 7,因为它附带了PowerShell 2,但EF或VS需要PowerShell 3
才能正常工作。更新后,错误消失了。
然后我运行这个错误:https://connect.microsoft.com/VisualStudio/feedback/details/1302181/add-migration-bug目前正在审核的内容。
这似乎是由VS2015 RC版本中的一些配置错误引起的。使用powershell 2回到VS13,重新安装了相关的nuget软件包,现在工作正常。