EntityFramework 啟用遷移 Enable-Migrations 報異常 "No context type was found in the assembly"


以前做項目的時候,沒有采用分類庫的形式,所以遷移一致非常順利,沒有出現過任何狀況。

這次做項目稍微有點大,必須要分類庫才方便開發維護。

在解決方案中啟用項目EntityFramework遷移時卻發生了異常。

異常說在我的項目中沒有找到DBContext類。

這個DBContext類確實沒有放在啟動項目下面,是另外建立了一個獨立的類庫來存放。

在啟動項目中引用了卻無法找到。。。

查看get-help Enable-Migrations幫助,發現啟用遷移命令帶了幾個參數。

Enable-Migrations [-ContextTypeName <String>] [-EnableAutomaticMigrations] [-ProjectName <String>] [-StartUpProjectName <String>] [-ConnectionStringName <String>] [-Force] [<CommonParameters>]

ContextTypeName:項目繼承自DBContext的類名字。

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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM