entity framework代码优先 – 使用MySql创建数据库?

我只想尝试使用Entity Framework而不是NHibernate。 我正在使用MySql数据库。 所以我用代码第一个系统做了很少的测试。 MsSql数据库一切正常,模式是自动生成的。 但后来我用MySql尝试了它,并且模式生成不起作用。

public class Context : DbContext { public Context() { } public Context(string str) : base (str) { } public DbSet Users { get; set; } } public class User { public int Id { get; set; } public string Name { get; set; } } class Program { static void Main(string[] args) { var sqlBuilder = new SqlConnectionStringBuilder { DataSource = "localhost", InitialCatalog = "test", Password = "", UserID = "root" }; var entityBuilder = new EntityConnectionStringBuilder { Provider = "MySql.Data.MySqlClient", ProviderConnectionString = sqlBuilder.ConnectionString, Metadata = @"res://*" }; var str = entityBuilder.ConnectionString; using (var ctx = new Context(str)) { ctx.Users.Add(new User() // exception here { Name = "test" }); ctx.SaveChanges(); } using (var ctx = new Context(str)) { foreach (var user in ctx.Users) { Console.WriteLine("id:{0} name:{1}", user.Id, user.Name); } } } } 

我得到了这个例外:“实体类型User不是当前上下文模型的一部分。”

所以这是我的问题,如果我使用MySql,我可以自动生成数据库吗?

我不知道它为什么会起作用,但它现在确实如此。 我从代码中删除了连接属性,并创建了一个app.config文件并使用此博客更正了数据库创建时的错误http://brice-lambson.blogspot.fr/2012/05/using-entity-framework -code-first-with.html现在可以使用了