簡體   English   中英

通過Entity Framework 6 + MySQL的代碼設置數據庫創建/遷移

[英]Set up database creation/migrations from code for Entity Framework 6 + MySQL

我以前在項目中使用過NHibernate和Fluent Migrator來創建數據庫(如果尚不存在)並通過遷移腳本更新架構。 我正在查看Entity Framework(6)進行比較,但無法復制該功能。

在我的App.config ,我設置了連接字符串和數據庫提供程序。 然后,我繼續創建了一個數據模型,希望將其表示為數據庫中的表。

namespace DataModels
{
    public class StoreClient
    {
        public int Id;
        public string DisplayName;

        public StoreClient()
        {
        }
    }
}

然后,我繼續創建數據庫上下文。

namespace DataModels
{
    public class StoreContext : DbContext
    {
        public DbSet<StoreClient> StoreClients { get; set; }
    }
}

在服務啟動時,我創建了一個StoreContext實例,並嘗試添加並調用db.SaveChanges(); ,但這失敗了,因為沒有與我的StoreClient相匹配的架構。

我的問題很簡單。 如何配置StoreContext (或通常的EF)以自動創建數據庫架構,以及如何在更改該架構時將其設置為遷移?

這看起來很簡單,但是我周圍的搜索並沒有給我任何來自NHibernate世界的看起來很熟悉的東西。

如果要自動創建數據庫,請嘗試在Application_Start()方法中放入一些代碼。 例如:

Database.SetInitializer(new MigrateDatabaseToLatestVersion<StoreContext, Configuration>());
StoreContext context = new StoreContext();
context.Database.Initialize(true);

在控制台中啟用在自動遷移時創建Configuration類的位置。 查看此msdn 演示 另外我也不保證您的代碼冷杉模型會那樣工作。 如果沒有,請嘗試使用屬性更改字段。

namespace DataModels
{
    public class StoreClient
    {
        public int Id { get; set; }
        public string DisplayName { get; set; }
        public StoreClient()
        {
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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