c# - 如何使用拆分操作执行 LINQ 查询

标签 c# linq

我有以下 linq 查询:

 MyClass myobj = (from p in Session.All<MyClass>()
                  where p.tags.Split(' ').Contains(searchTag) 
                  select p).FirstOrDefault();

当我运行它时,我得到:

System.NotSupportedException: LINQ to Entities does not recognize the method 'System.String[] Split(Char[])' method, and this method cannot be translated into a store expression.

做我想做的事情的好方法是什么?

最佳答案

这里真正的问题是数据库设计,但假设您无法控制这个想法,那就是拆分查询。

首先检索任何包含搜索标记的行。

List<MyClass> myobjs = (from p in Session.All<MyClass>()
                        where p.tags.Contains(searchTag) 
                        select p).ToList();

然后在内存中对检索到的对象执行正确的标记搜索。

MyClass myobj = myobjs.FirstOrDefault(m => m.tags.Split(' ').Contains(searchTag));

关于c# - 如何使用拆分操作执行 LINQ 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20338761/

相关文章:

c# - 与表组结果的 SQL 同步计数

C#在许多看起来像列表的列表中选择一些列表

linq - 使用 .NET Framework 4 的动态 LINQ API

.net - "Or"等价于 LinqWhere() lambda 表达式

c# - LINQ - 无法从 select 中的用法推断出类型参数

c# - LINQ - 从具有特定标记的 XML 元素中选择 *

c# - Windows 窗体应用程序因 .NET 远程处理服务而失败

c# - MySQL 查询永远运行,有什么问题?

c# - 在具有 Windows 身份验证的 ASP.Net 5 中使用 IIS Express/Kestrel 时,User.IsInRole 始终为 false

c# - 通过分组拆分 Linq 列表