2011-06-15 43 views
0

我有這個表:令牌偏移SQL錯誤NHibernate的

表 「設置」:PK:IdSet(INT),IdProject(INT),IdSetState(INT),IdPriority(INT),NumSet(INT)單元(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); 
     } 

這是我的插入方法的設置:

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 (組);發生這樣的錯誤:

「用戶代碼不能控制SqlCeException」

「無法解析查詢[令牌行號= 1,令牌行偏移= 13,令牌在錯誤=設置]。」

如何解決這個問題?

回答

0

未設置保留關鍵字嗎?嘗試使用 「」 或[]

<?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

相關問題