EntityFramework 启用迁移 Enable-Migrations 报异常 "No context type was found in the assembly"

之前作项目的时候,没有采用分类库的形式,因此迁移一致很是顺利,没有出现过任何情况。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

相关文章
相关标签/搜索