[英]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.