令牌偏移量sql错误NHIBERNATE



我有这个表:

TABLE"Set":[PK:IdSet(int),IdProject

以及使用NUnit测试。

这是我的测试方法:

[Test]
        public void Can_add_Set()
        {
            var set = new Set { IdProject = 2, IdSetState = 2, NumDisc = 1, IdPriority = 3, NumSet = 100};
            setRepository.AddSet(set);
        }

这是我插入集合的方法:

public void AddSet(Set set) 
        {
            using (ISession session = NHibernateSessionBuilder.OpenSession())
            using (ITransaction transaction = session.BeginTransaction())
            {
                session.Save(set);
                transaction.Commit();
            }
        }

这是映射:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   assembly="AdminProject"
                   namespace="AdminProject.Business.Entity">
  <class name="Set">
    <id name="IdSet">
      <generator class="identity"/>
    </id>
    <property name="IdProject" />
    <property name="IdSetState" />
    <property name="IdPriority" />
    <property name="Unit" />
    <property name="NumDisc" />
    <property name="NumSet" />
  </class>
</hibernate-mapping> 

当会话.保存(集);发生以下错误:

"用户代码无法控制SqlCeException"

"解析查询失败。[Token行号=1,Token行偏移量=13,Token in error=Set]"

如何解决此问题?

set不是保留关键字吗?尝试使用"或[]对其进行限定

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   assembly="AdminProject"
                   namespace="AdminProject.Business.Entity">
  <class name="[Set]">
    <id name="IdSet">
      <generator class="identity"/>
    </id>
    <property name="IdProject" />
    <property name="IdSetState" />
    <property name="IdPriority" />
    <property name="Unit" />
    <property name="NumDisc" />
    <property name="NumSet" />
  </class>
</hibernate-mapping> 

SQL CE保留关键字:http://msdn.microsoft.com/en-us/library/aa258313(v=sql.80).aspx

相关内容

最新更新