EF代码首先使用现有的MySql数据库

时间:2012-11-14 11:54:21

标签: c# mysql asp.net-mvc visual-studio-2010

我创建了一个在MySql数据库中对现有表进行建模的类。以下是课程:

  public class class1
{
    [Key]
    public int id { get; set; }

    public int LastName { get; set; }
    public int FirstName { get; set; }

}

我也创建了这个类。

public class Dbo : DbContext
{
    public DbSet<class1> Classs { get; set; }
}

我已经创建了我的控制器。现在,当我运行应用程序时,我收到此错误:

 MySql.Data.MySqlClient.MySqlException was unhandled by user code
  Message=You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`id` int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    `LastName` int NOT NULL, 
    `Fi' at line 2
  Source=MySql.Data
  ErrorCode=-2147467259
  Number=1064

MySql表具有以下结构:

    `id` int(11) NOT NULL,
  `LastName` int(11) NOT NULL,
  `FirstName` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT

1 个答案:

答案 0 :(得分:1)

根据错误消息,EF试图为您创建Db。

如果你添加null初始化程序,它应该工作

    public class Dbo : DbContext
    {
        public DbSet<class1> Classs { get; set; }
        public Dbo()
        {
            Database.SetInitializer<Dbo>(null);
        }
    }

这是另一个代码项目文章,它对我有用:Using Entity Framework 4.1 Code First with an existing database