我使用entityframework 5.0.我有这么多考试.如果我单独进行测试就会通过,如果我在同一时间与其他人一起运行它,它就不会通过.测试之间没有联系.每次发送一个相同的查询.它不会被修改.
**query:** insert [dbo].[Patient] ([AddressId],[FirstName],[LastName],[MiddleName],[MuthersName],[Sex],[BirthDate],[TAJNumber],[Height],[Weight],[PhoneMobil],[PhoneHome],[Email],[OtherDisease]) values (13 /* @0 */,'Peter' /* @1 */,'Peter' /* @2 */,'Peter' /* @3 */,'Maria' /* @4 */,1 /* @5 */,'1991-07-04T00:00:00' /* @6 */,'5464845' /* @7 */,170 /* @8 */,66 /* @9 */,'00456249864' /* @10 */,'00456249864' /* @11 */,'alma22@mailmetrash.com' /* @12 */,null) select [Id] from [dbo].[Patient] where @@ROWCOUNT > 0 and [Id] = scope_identity() **WARN:** System.Data.sqlClient.sqlException (0x80131904): The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 9 ("@6"): The supplied value is not a valid instance of data type datetime2. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision. at System.Data.sqlClient.sqlConnection.OnError(sqlException exception,Boolean breakConnection,Action`1 wrapCloseInAction) at System.Data.sqlClient.sqlInternalConnection.OnError(sqlException exception,Action`1 wrapCloseInAction) at System.Data.sqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,Boolean callerHasConnectionLock,Boolean asyncClose) at System.Data.sqlClient.TdsParser.TryRun(RunBehavior runBehavior,sqlCommand cmdHandler,sqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,Boolean& dataReady) at System.Data.sqlClient.sqlDataReader.TryConsumeMetaData() at System.Data.sqlClient.sqlDataReader.get_MetaData() at System.Data.sqlClient.sqlCommand.FinishExecuteReader(sqlDataReader ds,RunBehavior runBehavior,String resetOptionsString) at System.Data.sqlClient.sqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior,Boolean returnStream,Boolean async,Int32 timeout,Task& task,Boolean asyncWrite) at System.Data.sqlClient.sqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,String method,TaskCompletionSource`1 completion,String method) at System.Data.sqlClient.sqlCommand.ExecuteReader(CommandBehavior behavior,String method) at System.Data.sqlClient.sqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) at HibernatingRhinos.Profiler.Appender.ProfiledDataAccess.ProfiledCommand.ExecuteDbDataReader(CommandBehavior behavior) ClientConnectionId:c184fe10-8d28-4b0b-96bf-395796cd0e29 **exception:** Test Name: VM_PatientRegistration_Insert Test FullName: **Insert Test Source: **line 23 Test Outcome: Failed Test Duration: 0:00:01,0018114 Result Message: Test method TandoCare.Desktop.Test.viewmodel.PatientRegistrationviewmodelTest.VM_PatientRegistration_Insert threw exception: System.Data.Entity.Infrastructure.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. ---> System.Data.UpdateException: An error occurred while updating the entries. See the inner exception for details. ---> System.Data.sqlClient.sqlException: The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 9 ("@6"): The supplied value is not a valid instance of data type datetime2. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision. Result StackTrace: at System.Data.sqlClient.sqlConnection.OnError(sqlException exception,String method) at System.Data.sqlClient.sqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) at HibernatingRhinos.Profiler.Appender.ProfiledDataAccess.ProfiledCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator translator,EntityConnection connection,Dictionary`2 identifierValues,List`1 generatedValues) at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager,IEntityAdapter adapter) --- End of inner exception stack trace --- at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager,IEntityAdapter adapter) at System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache) at System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options) at System.Data.Entity.Internal.InternalContext.SaveChanges() --- End of inner exception stack trace --- at System.Data.Entity.Internal.InternalContext.SaveChanges() at System.Data.Entity.Internal.LazyInternalContext.SaveChanges() at System.Data.Entity.DbContext.SaveChanges() at TandoCare.Infrastructure.Data.UnitOfWork.UnitOfWorkBase`1.Save() in ** at TandoCare.Desktop.Test.viewmodel.PatientRegistrationviewmodelTest.VM_PatientRegistration_Insert() in *** :line 55
解决方法
当我尝试插入具有浮点数据类型的新行时,我遇到了这个问题.当我尝试插入(无穷大)或(NaN)值时抛出此异常,并且SOL Server不支持这些值.
如果您使用Entity Framework,则建议使用(http://hibernatingrhinos.com/products/EFProf/learn/).跟踪生成的sql.并检测导致您的问题的参数.
如果您使用TPT (Table-Per-Type),sql事件探查器将无法帮助您.