之前作项目的时候,没有采用分类库的形式,因此迁移一致很是顺利,没有出现过任何情况。spa
此次作项目稍微有点大,必需要分类库才方便开发维护。继承
在解决方案中启用项目EntityFramework迁移时却发生了异常。ip
异常说在个人项目中没有找到DBContext类。开发
这个DBContext类确实没有放在启动项目下面,是另外创建了一个独立的类库来存放。字符串
在启动项目中引用了却没法找到。。。get
查看get-help Enable-Migrations帮助,发现启用迁移命令带了几个参数。it
Enable-Migrations [-ContextTypeName <String>] [-EnableAutomaticMigrations] [-ProjectName <String>] [-StartUpProjectName <String>] [-ConnectionStringName <String>] [-Force] [<CommonParameters>]io
ContextTypeName:项目继承自DBContext的类名字。date
EnableAutomaticMigrations:开启自动迁移。引用
ProjectName:存放DBContext类的项目名称。
StartUpProjectName:解决方案中启动项目的名称,做用是调用该项目下的链接字符串。
ConnectionStringName:链接字符串名称
上面五个参数是解决问题必须的,其它的可有可无。
例如:
Enable-Migrations -ContextTypeName "DBAccessLib.TJSSDBContext" -ProjectName "DBAccessLib" -StartUpProjectName "WebSite" -ConnectionStringName "TJSSDBContext" -Verbose
依次填好以后,问题解决。
一样的在Add-Migration、Update-Database的时候也须要填写相应的参数。不然会出现一样错误。
例如:
Add-Migration -Name "EditCST_DevicePhoto" -ProjectName "DBAccessLib" -StartUpProjectName "WebSite" -ConnectionStringName "TJSSDBContext" -Verbose
Update-Database -Script -ProjectName "DBAccessLib" -StartUpProjectName "WebSite" -ConnectionStringName "TJSSDBContext" -Verbose