2014-09-10 43 views
0

我与实体框架和MySQL使用代码优先的方法被玩弄,MySql的EF代码第一次迁移VB.NET

当我从运行我对新创建的MySQL服务器代码,没有数据库等(除默认值)它根据我创建的类创建数据库和表。我的问题是,我不知道我是否正确地做到这一点是,如果我改变我的模型类,例如添加一个新的属性,我希望一个新的列被添加到该特定的表。然而,这是不是这样,而不是我得到一个错误

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

我知道这是因为我已经做了更改类的,但我的印象是,EF将能够做出的改变自动到数据库。

我已经安装了

EF 6.1.1

MySql.Data 6.9.3

MySql.Data.Entity 6.9.3

回答

0

所有你的数据库的初始化发生在

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

您可以在您的DbContext的构造函数中进行设置使用Entity.Database.SetInitializer()或在您的Web.config<entityFramework><contexts><context><databaseInititalizer>中进行配置。

要获得在现有数据库中的新列,你需要或者做必要的迁移(见http://msdn.microsoft.com/en-us/data/JJ591621.aspx),或者您删除并重新创建每个模型更改数据库(这是什么DropCreateDatabaseIfModelChanges实施IDatabaseInitializer呢,看到http://www.adfa.se/Archive/2013/02/01/database-initializers-in-ef-code-first )。

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