我正在使用Sql Compact Edition。
我有这张桌子:
表“Set”:[PK:IdSet(int),IdProject(int),IdSetState(int),IdPriority(int),NumSet(int),Unit(nchar),NumDisc(int)]
使用NUnit测试。
这是我的测试方法:
[Test]
public void Can_add_Set()
{
var set = new Set { IdProject = 2, IdSetState = 2, NumDisc = 1, IdPriority = 3, NumSet = 100};
setRepository.AddSet(set);
}
这是我插入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>
session.save(set);发生此错误:
用户代码无法控制SqlCeException
无法解析查询。 [令牌行号= 1,令牌行偏移= 13,令牌错误=设置]
这可能是什么???
答案 0 :(得分:0)
你没有指定表,所以nhibernate将Set
作为表名。 Set
是大多数数据库中的保留字。你可以尝试逃避它
<class name="Set" table="`Set`">
我不确定我是否使用了正确的反引号