我尝试使用 EF6 和 MySQL。我确信我与数据库的连接正在工作,因为存在首选的数据库模式。但是,只有 __migration 表存在。
我有以下代码
我的模型
[Table("my_model")]
public class ModelA
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ModelAId { get; set; }
public string ModelAProperty { get; set; }
}
我的数据库上下文
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)不存在。
任何帮助将不胜感激。
附言如果您有任何好的教程可以让我在 ASP.NET MVC4 中设置我的 MySQL 和 EF6,那就太好了。截至目前,我似乎无法使用 MVC4 的 WebSecurity 助手。
最佳答案
在您的 Global.ascx 广告中
AppDbContext db = new AppDbContext();
db.Database.Initialize(true);
关于c# - Entity Framework 6 + MySQL : Model tables are not created automatically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21754843/