0

ここに私の流暢なクラスマップがあります:

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 = "test@test.com";
                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', 'test@test.com', 'test', 0, 0)' at line 1"}
4

1 に答える 1

1

エンティティのプロパティ名が、使用されているデータベースの方言のキーワードと等しい場合、同様のエラーが発生しました。MySQL の方言はわかりませんが、プロパティ Exists または Deleted が問題を引き起こす可能性があります。

プロパティの名前を変更するか、列の名前を次のように変更します。

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

これができない場合は、キーワードの引用を有効にする方法もあります。このリンクを参照してください。

于 2013-02-05T19:07:45.907 に答える