[英]Which project should I enable migrations
我有一個wpf項目,結構如下:
project1(solution)
|->Model(project)
|->DataAccess(project)
|->project1(project)
Project1是我編譯並將exe傳遞給用戶的項目。
現在我想啟用自動遷移: Enable-Migrations –EnableAutomaticMigrations
project1是默認項目。 當我運行該命令時,顯然它將無法找到位於DataAccess
項目中的數據庫上下文。 我能夠在DataAccess
項目中啟用它。
但這是對的嗎? 如何在project1項目中啟用它?
編輯:
我想我可以在DataAccess
項目中啟用遷移,並將它的MyConfiguration引用回DataAccess
項目嗎?
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, MyConfiguration>());
但我得到這個錯誤:
Error 2 'DataAccess.Migrations.Configuration' is inaccessible due to its protection level
您是否嘗試過使用-StartupProjectName參數?
Enable-Migrations -EnableAutomaticMigrations -ProjectName DataAccess -StartupProjectName project1
最后一個參數指定模擬在該項目中運行,包括來自app.config / web.config的任何設置。
編輯:對於啟用遷移,您看到的錯誤可能是因為默認情況下將MigrationsConfiguration創建為internal。 你可以:
在project1的app.config / web.config中設置它。 即使類型是內部的,它也會在運行時解析並仍然有效:
<entityFramework> <contexts> <context type="DataAccess.FooContext, DataAccess"> <databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[DataAccess.FooContext, DataAccess], [DataAccess.Migrations.Configuration, DataAccess]], EntityFramework, PublicKeyToken=b77a5c561934e089"> </databaseInitializer> </context> </contexts> </entityFramework>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.