首页 > 解决方案 > 评估方法 System.Linq.Enumerable.ToList() 在 QuickWatch 中调用本机方法 Interop+Kernel32.FindStringOrdinal()

问题描述

我有一个从 DB 获得的帖子列表,如下所示:

 var iQueryablePost= from p in context.Posts
                     select new Post
                     {
                       Id=p.id,
                       Label=p.label
                     };
 var posts = new List<Post>();
 posts = await iQueryablePost.ToListAsync();

我想在从 DB 获取所有帖子后过滤我的帖子,如果我将 where 添加到 iQueryable 它工作得很好,但我需要从 DB 获取所有帖子。

这就是我所做的以及我在 QuickWatch 中看到的消息:

posts = !string.IsNullOrWhiteSpace(query.PdcIdSITiers) ? 
        posts.Where(c => c.Label.ToLower().Contains(query.label.ToLower())).ToList() : 
        posts;

快速观看消息:

评估方法 System.Linq.Enumerable.ToList() 调用本机方法 Interop+Kernel32.FindStringOrdinal()。不支持在此上下文中评估本机方法。System.Collections.Generic.List

在此处输入图像描述

该项目基于CQRS设计模式

标签: c#c#-6.0

解决方案


问题来自一个为空的标签 从我的列表中删除这一行后,代码工作得很好。

谢谢你们的评论


推荐阅读