我有以下 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/