簡體   English   中英

我應該在哪個項目中啟用遷移

[英]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。 你可以:

  • 把它公之於眾
  • 在DataAccess項目中的某處設置DB初始化程序
  • 在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM