2013-02-05 70 views
0

這裏是我的流暢類映射:爲什麼我不能使用Fluent NHibernate將它插入到MySQL InnoDB表中?

class ImportedAccountsMap : ClassMap<ImportedAccounts> 
{ 
    public ImportedAccountsMap() 
    { 
     Id(x => x.Id); 
     Map(x => x.Acct_FName); 
     Map(x => x.Acct_LName); 
     Map(x => x.Acct_Phone1); 
     Map(x => x.Acct_Email); 
     Map(x => x.Date); 
     Map(x => x.Exists); 
     Map(x => x.Deleted); 
    } 
} 

我的控制器代碼

 public void ImportInsertTest() 
    { 
     using (ISession session = MvcApplication.SessionFactory.OpenSession()) 
     { 
      using (ITransaction tx = session.BeginTransaction()) 
      { 
       ImportedAccounts ia = new ImportedAccounts(); 
       ia.Date = "test"; 
       ia.Deleted = false; 
       ia.Exists = false; 
       ia.Acct_FName = "test"; 
       ia.Acct_LName = "test"; 
       ia.Acct_Email = "[email protected]"; 
       session.Save(ia); 
       tx.Commit(); 
      } 
     } 
    } 

我得到這個錯誤:

{"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 'Exists, Deleted) VALUES ('test', 'test', 'test', '[email protected]', 'test', 0, 0)' at line 1"} 

回答

1

我有一個類似的錯誤,當我的實體屬性名稱與使用的數據庫方言的關鍵字相同。我不知道MySQL的方言,但Exists或/和Deleted屬性可能會導致問題。

重命名你的屬性或重命名,如列:

Map(x => x.Deleted).Column("IsDeleted"); 

如果這是你沒有選擇,也有以打開引用關鍵字的方式。看到這個link

+0

我已經想通了,並打算提供一個答案,但我寧願給你信用的時間,你曾經回答。謝謝你,先生。 – Chazt3n

相關問題