【发布时间】:2013-12-03 17:56:57
【问题描述】:
我有以下 linq 查询:
MyClass myobj = (from p in Session.All<MyClass>()
where p.tags.Split(' ').Contains(searchTag)
select p).FirstOrDefault();
当我运行它时,我得到:
System.NotSupportedException:LINQ to Entities 无法识别 method 'System.String[] Split(Char[])' 方法,而这个方法不能 被翻译成商店表达式。
什么是做我想做的事情的好方法?
【问题讨论】:
-
我会说,这是不可能的。这不是因为 LINQ,而是因为 SQL 不提供那种功能。你应该考虑改变你的数据库结构并将标签从表中移动到单独的字典中,使用外键链接
-
SQL 本身不支持。
-
问题是为什么你的
tags列存储标签空格分隔。创建一个新表,每个标签一行。 -
标准化标签,然后这样做:stackoverflow.com/questions/3478874/…