评估方法 System.Linq.Enumerable.ToList() 调用 QuickWatch 中的本机方法 Interop+Kernel32.FindStringOrdinal()

Oma*_*OUG 5 c# c#-6.0

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

 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();
Run Code Online (Sandbox Code Playgroud)

我想在从数据库获取所有帖子后过滤我的帖子,如果我将位置添加到 iQueryable 中,它就可以正常工作,但我需要从数据库获取所有帖子。

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

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

快速观看消息:

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

在此输入图像描述

该项目基于CQRS设计模式

Oma*_*OUG 1

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

谢谢你们的评论