2012-11-14 99 views
0

我已經創建了一個在MySql數據庫中建模現有表的類。以下是該課程:首先使用現有MySql數據庫的EF代碼

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 
+0

代碼第一次?這看起來不像「Code First」。表格已經存在,對嗎? – spender

+0

@spender Thats先用現有數據庫編碼。檢查http://www.codeproject.com/Articles/327945/Architecture-Guide-ASP-NET-MVC3-Entity-Framework-C。那裏的表已經存在。 – Sithelo

回答

1

根據錯誤信息,EF試圖創建分貝你。

如果添加空初始化它應該工作

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

這裏是另一個CodeProject上的文章,它的工作對我來說:Using Entity Framework 4.1 Code First with an existing database

+0

非常感謝。你是對的。當我檢查StackTrace時,我注意到了這一點。現在我正在向前邁進,以創建關聯,儘管我的底層數據具有獨立的表。 – Sithelo

相關問題