The query is innocent:
Query.All<RowLevelPermission>().ToArray()
But it gets:
System.NullReferenceException occurred
Message=Object reference not set to an instance of an object.
Source=Xtensive.Storage
StackTrace:
at Xtensive.Storage.Linq.Queryable`1.GetEnumerator() in c:\Temp\DataObjects.Net\Xtensive.Storage\Xtensive.Storage\Linq\Queryable.cs:line 77
InnerException:
If i use debugger and try to evaluate my Query.All() when the exception is thrown I can see this:
Unable to translate 'Query.All()' expression. See inner exception for details.
at Xtensive.Storage.Linq.QueryProvider.Translate[TResult](Expression expression) in c:\Temp\DataObjects.Net\Xtensive.Storage\Xtensive.Storage\Linq\QueryProvider.cs:line 81
at Xtensive.Storage.Linq.QueryProvider.Execute[TResult](Expression expression) in c:\Temp\DataObjects.Net\Xtensive.Storage\Xtensive.Storage\Linq\QueryProvider.cs:line 67
at Xtensive.Storage.Linq.Queryable`1.GetEnumerator() in c:\Temp\DataObjects.Net\Xtensive.Storage\Xtensive.Storage\Linq\Queryable.cs:line 76
at System.Linq.SystemCore_EnumerableDebugView`1.get_Items()
And further:
Property 'ParameterizedQuery' is already initialized.
at Xtensive.Storage.Internals.QueryCachingScope.set_ParameterizedQuery(TranslatedQuery value) in c:\Temp\DataObjects.Net\Xtensive.Storage\Xtensive.Storage\Internals\QueryCachingScope.cs:line 36
at Xtensive.Storage.Linq.Translator.Translate[TResult](ProjectionExpression projection, IEnumerable`1 tupleParameterBindings) in c:\Temp\DataObjects.Net\Xtensive.Storage\Xtensive.Storage\Linq\Translator.Materialization.cs:line 65
at Xtensive.Storage.Linq.Translator.Translate[TResult]() in c:\Temp\DataObjects.Net\Xtensive.Storage\Xtensive.Storage\Linq\Translator.Materialization.cs:line 35
at Xtensive.Storage.Linq.QueryProvider.Translate[TResult](Expression expression) in c:\Temp\DataObjects.Net\Xtensive.Storage\Xtensive.Storage\Linq\QueryProvider.cs:line 78
I still cannot figure out, why it works in other places and does not here.
asked
Aug 26 '10 at 02:18
xumix
425●75●76●82
I've found the problem, this query is executed deeply inside Query.ExecuteFutureScalar(,). If I remove ExecuteFutureScalar and just use methods directly, then it works OK.
Only one query can be executed inside
Query.ExecuteXxx
methods. Was this condition violated?I suppose, that yes. Thanks for your solution.