当前位置: 首页 > 编程语言 > C#

LINQToEntities无法识别数组索引分享

时间:2023-04-11 01:15:24 C#

LINQToEntities无法识别数组索引我的代码有如下函数for(inti=0;im.PresId==id[i]).FirstOrDefault();paths.Add(press.FilePath);}返回路径;但是当我尝试这个时,编译器会得到这样的错误。LINQtoEntities无法识别'Int64get_Item(Int32)'方法,并且此方法无法转换为存储表达式。然后我尝试做这样的事情,一切正常。publicListGetpathsById(Listid){longx;列表路径=newList();for(inti=0;im.PresId==x).FirstOrDefault();paths.Add(press.FilePath);}返回路径;所以我想知道,为什么?在我的脑海里,我无法得到任何答案。谁能解释这个悖论?没有魔法:表达式树被翻译成SQL查询,关系数据库可以理解。您几乎可以用表达式树做任何事情。不幸的是,并非所有操作都已实施请考虑以下示例:您希望生成的SQL查询是什么?数组索引器就是这种情况。它们不能被翻译成SQL查询。也就是说,在您的情况下,以下内容可能更简单:.Contains方法将转换为SQLIN子句。这避免了像示例中那样在每次迭代中向数据库发送多个SQL查询。这个问题是另一个用户问的,所以它一定是学校作业。基本上我给了其他用户相同的答案。它不能映射到SQL类型或函数。你想在这段代码中做的所有事情都可以用一个列表来完成,并以稍微不同的方式迭代它。以下代码将完成您需要的一切。以上是C#学习教程:LINQToEntities无法识别数组索引共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——publicListGetpathsById(Listid){Listpaths=newList();foreach(longaainid){Presentationpress=context.Presentations.Where(m=>m.PresId==aa).FirstOrDefault();paths.Add(press.FilePath);}返回路径;}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: