Edit2:這個問題一開始是關于如何瀏覽表的問題,但后來變成了關于Telerik voa_class例外的問題
編輯1:這個問題包含了試圖做同樣事情的兩種方法。
我想做的是:
var Obj1 = database.GetData<Class1>().First()。
var Obj2 = database.GetData<Class1>().Next();
第一次嘗試
Next()的想法是簡單地采取另一個。由于Next()方法并不存在,所以我決定在這里嘗試一下: var Obj1 = database.GetData<Class1>().First();
var Obj2 = database.GetData<Class1>().Single(o => o.Name != Obj1.Name);
然而,這產生了一個奇怪的例外:
這產生了一個奇怪的例外。
Telerik.OpenAccess.Exceptions.DataStoreException
HResult=0x80131500。
Message=Row for OID GenericOID@87f2834a Class1 Id=2 NOTRES is not in the hierarchy starting at < 名稱空間>。 Class1 ('Class1s') (voa_class for row is ...)
來源=Telerik.OpenAccess.Runtime
StackTrace:
at OpenAccessRuntime.ExceptionWrapper.Throw()
at OpenAccessRuntime.storagemanager.logging.LoggingStorageManager.executeQueryAll(ApplicationContext context, ImmutableQueryDetails query, CompiledQuery compiledQuery, QueryParameters parameters, Int32 skip, Int32 take)
at OpenAccessRuntime.DataObjects.UnsynchronizedPMProxy.getAllQueryResults(CompiledQuery cq, QueryParameters parameters, Int32 skip, Int32 take)
在OpenAccessRuntime.DataObjects.ForwardQueryResult.Resolve()
at OpenAccessRuntime.DataObjects.ForwardQueryResult.Initialize()
at OpenAccessRuntime.DataObjects.ForwardQueryResult.get_Item(Int32 indexParam)
at OpenAccessRuntime.ListEnumerator.setCurrent(Int32 _pos)
at OpenAccessRuntime.ListEnumerator.Move(Int32 relative)
at OpenAccessRuntime.ListEnumerator.MoveNext()
at Telerik.OpenAccess.Query.TypedEnumerator`1.MoveNext()
at Telerik.OpenAccess.Query.ExpressionExecution.PerformDatabaseQuerySingle[TResult,T](ChainedContext context, Expression expression, QueryableCategory before, Int32& found, Int32 elemAt, Boolean single, Boolean diffType)
at Telerik.OpenAccess.Query.ExpressionExecution.PerformQuerySingle[T,TResult](ExpressionCutter cutter, MethodCallExpression mce, ChainedContext piece, QueryOptions options)
at Telerik.OpenAccess.Query.Piece`1.ExecuteSingle[TResult](Expression expression)
at Telerik.OpenAccess.Query.Piece`1.System.Linq.IQueryProvider.Execute[TResult](Expression expr)
at System.Linq.Queryable.Single[TSource](IQueryable`1 source, Expression`1 predicate)
at <CurrentClass>.<CurrentMethod>() in C:...<Source_Code>.cs:line 54
在...。
第二次嘗試
(這個第二次嘗試是基于這個其他問題。)IQueryable<Class1> query = database.GetData<Class1>()。
query.OrderBy(u => u.Id)。
var Obj1 = query.First()。
query = query.Skip(1);
var Obj2 = query.First(); <== this line gives me an exception.
作為一個例外,我得到了一個與第一個類似的例外。
這是怎么回事?
這是什么情況?
這是什么情況?
uj5u.com熱心網友回復:
顯然,源代碼是正確的,但資料庫似乎有問題:
與Class1相對應的表,包含一列voa_class。該列的內容應該是<NameSpace_of_Class1>.Class1。如果有別的東西,比如<Whatever_NameSpace>.<AnotherClass>或者<AnotherNameSpace>.Class1(就像我的例子),就會產生上述例外。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/310109.html
標籤:
