首页 新闻 会员 周边

关于linq查询问题

0
[待解决问题]
context.WorkflowNodeCollection.Where(p => p.FID == item.FNextStepFlagID).SingleOrDefault();

System.AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。 在 System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext() 在 System.Linq.Enumerable.Count[TSource](IEnumerable`1 source) 在

大家使用linq的时候有没有遇到过这种异常,偶发的.
 
急!急!急!急!急!急!急!急!急!急!
幽境仼孓的主页 幽境仼孓 | 初学一级 | 园豆:0
提问于:2012-07-11 10:25
< >
分享
所有回答(2)
0

你的WorkflowNodeCollection集合是不是很大?SingleOrDefault的执行方案是有问题的,如果你不强制唯一,那么可以改成:

context.WorkflowNodeCollection.FirstOrDefault(p => p.FID == item.FNextStepFlagID);

关于Single/SingleOrDefault的执行机制问题,参考SO上的这个问题

水牛刀刀 | 园豆:6350 (大侠五级) | 2012-07-11 10:29

WorkflowNodeCollection就是一个list<实体类>类型的集合,最大3条数据吧,

支持(0) 反对(0) 幽境仼孓 | 园豆:0 (初学一级) | 2012-07-11 11:21

context.NodeUserCollection.Keys.FirstOrDefault(),NodeUserCollection是个字典,好像这句也会出错上面的错误

支持(0) 反对(0) 幽境仼孓 | 园豆:0 (初学一级) | 2012-07-11 11:25
0

你用的是Linq to SQL还是Entity Framework?

dudu | 园豆:31003 (高人七级) | 2012-07-11 10:44

都不是,就是流程上下文中有个list<实体类>的集合的变量WorkflowNodeCollection

支持(0) 反对(0) 幽境仼孓 | 园豆:0 (初学一级) | 2012-07-11 11:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册