添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

InsertOrUpdate 若字段名称为Index等关键字时语句执行失败 #816

Closed
@VicBilibily

Description

原始错误:

System.Exception: 'Index' 附近有语法错误。如果它要作为表提示的一部分,则必须有 WITH 关键字和圆括号。有关正确的语法,请参阅 SQL Server 联机丛书。
')' 附近有语法错误。
 ---> Microsoft.Data.SqlClient.SqlException (0x80131904): 'Index' 附近有语法错误。如果它要作为表提示的一部分,则必须有 WITH 关键字和圆括号。有关正确的语法,请参阅 SQL Server 联机丛书。
')' 附近有语法错误。
   at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at Microsoft.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean isAsync, Int32 timeout, Boolean asyncWrite)
   at Microsoft.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry, String methodName)
   at Microsoft.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at FreeSql.Internal.CommonProvider.AdoProvider.ExecuteNonQuery(DbConnection connection, DbTransaction transaction, CommandType cmdType, String cmdText, Int32 cmdTimeout, DbParameter[] cmdParms)
ClientConnectionId:a00fc104-fbc8-4edb-98bd-6a537bce648b
Error Number:1018,State:1,Class:15
   --- End of inner exception stack trace ---
   at FreeSql.Internal.CommonProvider.AdoProvider.LoggerException(IObjectPool`1 pool, PrepareCommandResult pc, Exception ex, DateTime dt, StringBuilder logtxt, Boolean isThrowException)
   at FreeSql.Internal.CommonProvider.AdoProvider.ExecuteNonQuery(DbConnection connection, DbTransaction transaction, CommandType cmdType, String cmdText, Int32 cmdTimeout, DbParameter[] cmdParms)
   at FreeSql.Internal.CommonProvider.InsertOrUpdateProvider`1.RawExecuteAffrows()
   at FreeSql.Internal.CommonProvider.InsertOrUpdateProvider`1.ExecuteAffrows()

尝试修复:VicBilibily@24f3e2a UnitTest:VicBilibily@e64247d 但是改动后需要改动较多的单元测试

数据库的具体版本

SQLServer2008R2
FreeSql.Provider.SqlServer

.net framework/. net core? 及具体版本