【发布时间】:2019-01-29 23:29:40
【问题描述】:
我正在尝试获取这样的节点:
DocumentHelper.GetDocuments()
.Where("NodeParentID == 25 && NodeLevel == 2")
但遇到异常:
“=”附近的语法不正确。在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常, Boolean breakConnection,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, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource1 完成,Int32 超时,Task& 任务, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior、runBehavior、布尔返回流、字符串 方法)在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior 行为,字符串方法)在 System.Data.Common.DbDataAdapter.FillInternal(数据集数据集, DataTable[] 数据表,Int32 startRecord,Int32 maxRecords,字符串 srcTable、IDbCommand 命令、CommandBehavior 行为)在 System.Data.Common.DbDataAdapter.Fill(数据集数据集,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand 命令, CommandBehavior 行为)在 System.Data.Common.DbDataAdapter.Fill(DataSet 数据集) 在 CMS.DataEngine.AbstractDataConnection.ExecuteQuery(字符串查询文本, QueryDataParameters queryParams, QueryTypeEnum queryType, Boolean requiresTransaction) --- 内部异常堆栈跟踪结束 ---
在 CMS.DataEngine.AbstractDataConnection.HandleError(字符串查询文本, 例外 ex) 在 CMS.DataEngine.AbstractDataConnection.ExecuteQuery(字符串查询文本, QueryDataParameters queryParams, QueryTypeEnum queryType, Boolean 需要交易)在 CMS.DataEngine.GeneralConnection.RunQuery(QueryParameters 查询)在 CMS.DataEngine.GeneralConnection.RunQueryWithRetry(查询参数 查询,Int32 retryCount)在 CMS.DataEngine.GeneralConnection.ExecuteQuery(QueryParameters 查询, Int32& 总记录)在 CMS.DataEngine.DataQueryBase1.GetDataFromDBInternal() at CMS.DataEngine.DataQueryBase1.GetDataFromDB() 在 CMS.DataEngine.DataQueryBase1.GetData() at CMS.DataEngine.DataQueryBase1.get_Result() 在 CMS.DataEngine.DataQueryBase1.GetResults(IDataQuery query, Int32& totalRecords) at CMS.DataEngine.DataQueryBase1.GetDataFromDB()
在 CMS.DocumentEngine.DocumentQueryProperties.GetDataInternal(IDocumentQuery 查询,Func1 baseGetDataMethod, Action1 setTotalRecords) 在 CMS.DataEngine.DataQueryBase1.GetData() at CMS.DataEngine.DataQueryBase1.get_Result() 在 CMS.DataEngine.MultiObjectQueryBase3.EnsureTypedResult() at CMS.DataEngine.MultiObjectQueryBase3.GetEnumerator() 在 System.Collections.Generic.List1..ctor(IEnumerable1 个集合)
在 System.Linq.Enumerable.ToList[TSource](IEnumerable`1 源)
我做错了什么?
【问题讨论】:
-
检查正在执行的 SQL 查询。
-
我不太熟悉 Kentico 或您使用的版本,但请尝试
.Where("NodeParentID", QueryOperator.Equals, "25")。看起来还有.WhereEquals("", "")语法。
标签: asp.net-mvc kentico