Мы используем NHIbernate, .net и sql server2005. Больше всего мистифицирует то, что при использовании той же базы данных, одних и тех же модульных тестов у моих друзей нет никаких сообщений, и все их тесты проходят успешно, тогда как с моим я получаю сообщения об ошибках:
ERROR [TestRunnerThread] ADOExceptionReporter [(null)]- The DELETE statement conflicted with the REFERENCE constraint "FK_Project_Client". The conflict occurred in database "TestDev", table "dbo.Project", column 'ClientID'. The statement has been terminated. 13:10:02,656 ERROR [TestRunnerThread] SessionImpl [(null)]- could not synchronize database state with session NHibernate.ADOException: could not delete: [Client#875][SQL: DELETE FROM Client WHERE ID = ?] ---> System.Data.SqlClient.SqlException: The DELETE statement conflicted with the REFERENCE constraint "FK_Project_Client". The conflict occurred in database "TestDev", table "dbo.Project", column 'ClientID'.
в System.Data.SqlClient.SqlConnection.OnError (исключение SqlException, логическое breakConnection)
в System.Data.SqlClient.SqlInternalConnection.OnError (исключение SqlException, логическое breakConnection)
в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning ()
в System.Data.SqlClient.TdsParser.Run (RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
в System.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
в System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
в System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, метод String, результат DbAsyncResult)
в System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery (результат DbAsyncResult, String methodName, логическое значение sendToPipe)
в System.Data.SqlClient.SqlCommand.ExecuteNonQuery ()
в NHibernate.Impl.BatcherImpl.ExecuteNonQuery (IDbCommand cmd)
в NHibernate.Impl.NonBatchingBatcher.AddToBatch (ожидание IExpectation)
в NHibernate.Persister.Entity.AbstractEntityPersister.Delete (идентификатор объекта, версия объекта, Int32 j, объект obj, SqlCommandInfo sql, сеанс ISessionImplementor, Object [] loadedState)
--- Конец трассировки внутреннего стека исключений ---
в NHibernate.Persister.Entity.AbstractEntityPersister.Delete (идентификатор объекта, версия объекта, Int32 j, объект obj, SqlCommandInfo sql, сеанс ISessionImplementor, Object [] loadedState)
в NHibernate.Persister.Entity.AbstractEntityPersister.Delete (идентификатор объекта, версия объекта, объект obj, сеанс ISessionImplementor)
в NHibernate.Impl.ScheduledDeletion.Execute ()
в NHibernate.Impl.SessionImpl.Execute (исполняемый файл IExecutable)
в NHibernate.Impl.SessionImpl.ExecuteAll (список IList)
в NHibernate.Impl.SessionImpl.Execute ()
Заявление было прекращено. Как и выше, у меня возникают различные другие тесты, которые не дают сообщений об ошибках.
не удалось синхронизировать состояние базы данных с сеансом
Любая идея, почему у меня появляются сообщения об ошибках, кто-нибудь знает?