c# - Why is the query operator 'ElementAt' is not supported in LINQ to SQL? -


in linq sql, exception "the query operator 'elementat' not supported." when trying use elementat extension method on iqueryable returned linq sql query.

here stack trace:

at system.data.linq.sqlclient.queryconverter.visitsequenceoperatorcall(methodcallexpression mc)    @ system.data.linq.sqlclient.queryconverter.visitmethodcall(methodcallexpression mc)    @ system.data.linq.sqlclient.queryconverter.visitinner(expression node)    @ system.data.linq.sqlclient.queryconverter.convertouter(expression node)    @ system.data.linq.sqlclient.sqlprovider.buildquery(expression query, sqlnodeannotations annotations)    @ system.data.linq.sqlclient.sqlprovider.system.data.linq.provider.iprovider.execute(expression query)    @ system.data.linq.table`1.system.linq.iqueryprovider.execute[tresult](expression expression)    @ system.linq.queryable.elementat[tsource](iqueryable`1 source, int32 index) 

now realize rid of exception , use elementat call '.tolist()' before using extension method , work. fine, still don't fact runtime exception (and seems lsp violation).

is there reason why these methods cannot supported? because cannot translated sql? other iqueryable/ienumerable extension methods not supported, there list somewhere?

it nice avoid runtime exceptions.

from msdn, standard query operator translation (linq sql) - article contains full list of operators haven't been translated:

  • takewhile , skipwhile
  • reverse
  • last , lastordefault
  • elementat , elementatordefault
  • defaultifempty

operators no translation

the following methods not translated linq sql. common reason difference between unordered multisets , sequences.

operators

rationale

...

elementat , elementatordefault

sql queries operate on multisets, not on indexable sequences.


Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

visual c++ - Using relative values in array sorting ( asm ) -