No context type was found in the assembly--------MVC


項目安裝了NuGet后,也執行了安裝EF,

NuGet 命令:

NuGet
PM> install-package entityframework
已安裝“EntityFramework 5.0.0”。
MvcStudy 已具有對“EntityFramework 5.0.0”的引用。

當執行enable migration的時候,出現了錯誤:

NuGet
PM> enable-migrations
No context type was found in the assembly 'MvcStudy'.

找了網上,沒有找到答案,想想根據錯誤信息,肯定是數據庫問題,開始找了:

1.連接字符串,在Web.Config里面有啊

2.DB數據文件,還沒有產生

3.錯誤信息中提到的No Context,應該是EF連接數據庫的Context吧

想想,剛剛新建了Class(MOdel),沒有什么Context啊,那DB的Context應該在哪創建呢,

先創建Controller吧,

習慣的一路選,咦,這個是什么呢?“數據上下文類”?什么來的,看看有什么可以選的,

啊,有“新建上下文類”哦,

玩玩看,隨便起一下名字吧,

添加完成后,可以看到在Model里面多了一個DBContext的文件哦,看起來,很像是連接DB的東東了。

這樣,Context有了,應該Enable可以了吧,試下,

NuGet
PM> enable-migrations
正在檢查上下文的目標是否為現有數據庫...
檢測到使用數據庫初始值設定項創建的數據庫。已搭建與現有數據庫對應的遷移“201303201607365_InitialCreate”的基架。若要改用自動遷移,請刪除 Migrations 文件夾並重新運行指定了 -EnableAutomaticMigrations 參數的 Enable-Migrations。
已為項目 MvcStudy 啟用 Code First 遷移。
PM> add-migration initial
正在為遷移“initial”搭建基架。
此遷移文件的設計器代碼包含當前 Code First 模型的快照。在下一次搭建遷移基架時,將使用此快照計算對模型的更改。如果對要包含在此遷移中的模型進行其他更改,則您可通過再次運行“Add-Migration 201303201609346_initial”重新搭建基架。
PM> update-database
指定“-Verbose”標記以查看應用於目標數據庫的 SQL 語句。
正在應用基於代碼的遷移: [201303201609346_initial]。
正在應用基於代碼的遷移: 201303201609346_initial。
正在運行 Seed 方法。

果然可以了,

謝天謝地,睡去了....

 備注一下NuGet命令:

NuGet
1 install-package entityframework
2 
3 enable-migrations
4 
5 add-migration initial
6 
7 update-database

 

 


免責聲明!

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



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