当使用Connector/NET 6.4.3作为堆栈的c#.net4 mvc3和entity-framework 4.1和MySql 5.0.67时。当域类发生变化时,为了让应用更新MySql中的表,我需要配置什么?如何让“代码优先”更新mysql中的表?
此外,有没有办法从域类生成sql/DDL?
我想使用“代码优先”的方法,但我似乎无法得到它来更新/创建表时,数据库已经存在。
将连接提供程序和字符串更改为SQLServer CE时,它将同时创建数据库和表。
当使用Connector/NET 6.4.3作为堆栈的c#.net4 mvc3和entity-framework 4.1和MySql 5.0.67时。当域类发生变化时,为了让应用更新MySql中的表,我需要配置什么?如何让“代码优先”更新mysql中的表?
此外,有没有办法从域类生成sql/DDL?
我想使用“代码优先”的方法,但我似乎无法得到它来更新/创建表时,数据库已经存在。
将连接提供程序和字符串更改为SQLServer CE时,它将同时创建数据库和表。
我试图做类似的事情,除了我想使用SQLite。我刚刚发现这个页面:http://weblogs.asp.net/manavi/archive/2011/05/17/associations-in-ef-4-1-code-first-part-6-many-valued-associations.aspx有一个标题为“获取代码第一次生成的SQL DDL”的部分,这看起来应该有助于生成SQL来创建数据库。
你看过Database.SetInitializer方法(http://msdn.microsoft.com/en-us/library/gg679461%28v=vs.103%29.aspx),它使用的一个类型是DropCreateDatabaseIfModelChanges(http://msdn.microsoft.com/en-us/library/gg679604%28v=vs.103%29.aspx)。这对我来说也适用于SQLServer CE,但我认为我发现System.Data.SQLite的当前版本不支持这一点,所以我将不得不以另一种方式创建数据库。
下面是一些其他的问题,可能有一些帮助,但我不能确定他们可以先申请代码。
Entity Framework 4.1 - Tracking and manually deploying DDL changes using T-SQL Entity Framework 4 - Update database schema from model. Without wiping the table data
祝你好运吧。如果您有兴趣查看,我会在我的网站kihonkai.com上发布我的编码进度(将包括EF 4.1)。
我回答了类似的问题在这里: Entity Framework 4.1 Code First not creating tables
基本上,它涉及:
YourDbContextInitializer
从DropCreateDatabaseIfModelChanges<YourDbContext>
Seed()
方法YourDbContextInitializer
继承与最初来填补你的数据库数据。YourDbContext
的OnModelCreating(ModelBuilder modelBuilder)
方法和设置使用Database.SetInitializer(new YourDbContextInitializer());