2011-01-14 162 views
0

表結構是:NHibernate.MappingException上表插入

alt text

控制器動作插入行到表是 公共BOOL CreateInstnParts(字符串數據) { IDictionary的myInstnParts = DeserializeData(數據);

 try 
     { 
      HSInstructionPart objInstnPartBO = new HSInstructionPart(); 
      using (ISession session = Document.OpenSession()) 
      { 
       using (ITransaction transaction = session.BeginTransaction()) 
       { 
        objInstnPartBO.DocumentId = Convert.ToInt32(myInstnParts["documentId"]); 
        objInstnPartBO.InstructionId = Convert.ToInt32(myInstnParts["instructionId"]); 
        objInstnPartBO.PartListId = Convert.ToInt32(myInstnParts["part"]); 
        objInstnPartBO.PartQuantity = Convert.ToInt32(myInstnParts["quantity"]); 
        objInstnPartBO.IncPick = Convert.ToBoolean(myInstnParts["incpick"]); 
        objInstnPartBO.IsTracked = Convert.ToBoolean(myInstnParts["istracked"]); 

        objInstnPartBO.UpdatedBy = User.Identity.Name; 
        objInstnPartBO.UpdatedAt = DateTime.Now; 
        session.Save(objInstnPartBO); 

        transaction.Commit(); 
       } 
       return true; 
      } 
     } 
     catch (Exception ex) 
     { 
      Console.Write(ex.Message); 
      return false; 
     } 
    } 

這是拋出一個異常

NHibernate.MappingException被抓獲 消息= 「沒有留存爲:Hexsolve.Data.BusinessObjects.HSInstructionPart」 源= 「NHibernate的」 堆棧跟蹤: 在NHibernate的。在NHibernate.Impl.SessionImpl.GetEntityPersister(String entityName,Object obj) 在NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId(Object entity,String entityName,Object anything,IEventSource sou RCE,布爾requiresImmediateIdAccess) 在NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent事件) 在NHibernate.Event.Default.DefaultSaveEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent事件) 在NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(SaveOrUpdateEvent事件) 在NHibernate.Event.Default.DefaultSaveEventListener.PerformSaveOrUpdate(SaveOrUpdateEvent事件) 在NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent事件) 在NHibernate.Impl.SessionImpl.FireSave(SaveOrUpdateEvent事件) 在NHibernate.Impl.SessionImpl .Save(Object obj) at HexsolveMVC.Controllers.InstructionController.Creat eInstnParts(String data)in F:\ Project \ HexsolveMVC \ Controllers \ InstructionController.cs:line 1342 InnerException:

任何人都可以幫我解決這個問題嗎?

+0

你是怎麼映射你的課程的?你在資源中使用了一個hbm文件嗎?這個文件是否標記爲「Embedded resource」? – 2011-01-14 07:06:05

回答

1

您可能會錯過hbm映射文件。你是否記得在映射文件中加入「Embedded Resource」編譯標誌?