c# – 远程过程调用(RPC)协议流不正确

我使用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事件探查器将无法帮助您.

相关文章

项目中经常遇到CSV文件的读写需求,其中的难点主要是CSV文件...
简介 本文的初衷是希望帮助那些有其它平台视觉算法开发经验的...
这篇文章主要简单记录一下C#项目的dll文件管理方法,以便后期...
在C#中的使用JSON序列化及反序列化时,推荐使用Json.NET——...
事件总线是对发布-订阅模式的一种实现,是一种集中式事件处理...
通用翻译API的HTTPS 地址为https://fanyi-api.baidu.com/api...