MySql EF Code首次迁移VB.NET

时间:2014-09-10 11:45:29

标签: mysql vb.net entity-framework

我使用Code First方法一直在使用Entity Framework和MySql,

当我针对新创建的没有数据库等的MySql Server运行我的代码时(除了默认值)它根据我创建的类创建数据库和表。我的问题是,我不知道我是否正确这样做,如果我对我的模型类进行更改,例如添加一个新属性,我希望将新列添加到该特定表中。然而事实并非如此,我收到了错误

Unknown column: 'Extent1.Email' in 'field list'

我知道这是因为我对课程进行了更改,但我认为EF可以自动将更改更改为数据库。

我已安装

EF 6.1.1

MySql.Data 6.9.3

MySql.Data.Entity 6.9.3

1 个答案:

答案 0 :(得分:0)

所有数据库初始化都在

中进行
 Interface IDatabaseInitializer(Of In TContext As System.Data.Entity.DbContext)

您可以使用DbContextEntity.Database.SetInitializer()构造函数中进行设置,也可以在Web.config的{​​{1}}中对其进行配置。

要在现有数据库中获取新列,您需要执行必要的迁移(请参阅http://msdn.microsoft.com/en-us/data/JJ591621.aspx),或者在每次模型更改时删除并重新创建数据库(<entityFramework><contexts><context><databaseInititalizer> DropCreateDatabaseIfModelChanges的实施确实如此,请参阅http://www.adfa.se/Archive/2013/02/01/database-initializers-in-ef-code-first)。

如果没有进一步的信息,我建议你做后者。