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

相關文章
相關標籤/搜索