2
我試圖使用EF6和MySQL。我確信我與數據庫的連接正在工作,因爲首選數據庫模式存在。但是,只有__migration表存在。EntityFramework 6 + MySQL:模型表格不會自動創建
我有以下代碼
我的模型
[Table("my_model")]
public class ModelA
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ModelAId { get; set; }
public string ModelAProperty { get; set; }
}
我的DbContext
public class ModelAContext : DbContext
{
public ModelAContext() : base("DefaultConnection")
{
}
static ModelAContext()
{
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<ModelAContext>());
}
public DbSet<ModelA> MyModels { get; set; }
}
我的初始化程序
// Assuming this is run during the application initialization
public static void InitializeDB()
{
using (var context = new ModelAContext())
{
if (!context.Database.Exists())
{
// Create the SimpleMembership database without Entity Framework migration schema
((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
}
context.Database.CreateIfNotExists();
}
}
未創建的MODELA相應的表。 我總是得到一個MySQL異常,其中一個表(在本例中爲app.my_model)不存在。
任何幫助將不勝感激。
P.S.如果你有任何好的教程,我可以在ASP.NET MVC4中設置我的MySQL和EF6,那就太好了。截至目前,我似乎無法使用MVC4的WebSecurity助手。
在關於設置EF6和MySQL在一起,這裏的研究,我做了一些幾個月前的一些注意事項,希望它能幫助 - http://stackoverflow.com/ question/20277677/dynamic-mysql-database-connection-for-entity-framework-6/20294903#20294903 –
@ francisco.preller,謝謝你的迴應。我其實已經從那個鏈接看到你的答案。我已經得到了MySQL和EF6的工作,但模型的表格不是自動創建的。看來context.Database.CreateIfNotExists()只能創建數據庫/模式而不是表。基於我的研究,他們說我需要創建一個查詢到DbSet來初始化表,但是,我總是會在表不存在的地方出錯。 – edmandie