2010-06-29 3 views
1

를 세척하기 전에 transient 인스턴스를 저장합니다NHibernate에 - 객체 참조 저장되지 않은 과도 인스턴스 - 나는 다음과 같은 오류를 받고 있어요

object references an unsaved transient instance - save the transient instance before flushing 

내가 과도 인스턴스를 저장하지을한다. ,

 if (MyObject.IsValid()) { 
      MyObjectRepo.Hydrate(MyObject); 
      return Json(MyObject); 
     } 
     else {     
      Dictionary<string, string> test = new Dictionary<string, string>(); 
      test.Add("failure", "failure"); 
      foreach (var a in MyObject.ValidationResults().ToList()) { 
       test.Add(a.PropertyName, a.Message); 
      }     
      return Json(test); 

개체가 유효하지 않은 경우 내가 테스트 사전 및 (그냥 다시 실패 문자열을 보내는 예를 들어) foreach 문이없는 : 나는 다시 클라이언트에 검증 결과를 보내려고 해요 잘 작동합니다. 이 질문에 대한 다른 모든 질문은 객체 저장 실패와 관련이 있습니다 ... 객체가 유효하지 않으며 저장하지 않으려는 경우 실패한 유효성 검사의 결과를 보냅니다. 감사!

+0

당신은 Session 내에 있습니까? 그렇다면 트랜잭션을 수행하십시오 .RollBack()? – Goblin

+0

아 그래, 나는 [Transaction] 주석이 달린 모든 메소드를 가지고있다 ... 나는 수동 트랜잭션을했을 때 성공했다. 오 고마워! –

+0

@Goblin이 두 답변에 대한 귀하의 의견을 변경하여 사람들이 검색하는 데 더 유용 할 수 있습니까? – Bronumski

답변

2

당신은 Session 내에 있습니까? 그렇다면 트랜잭션을 수행하십시오 .RollBack()?

관련 문제