【发布时间】:2016-05-18 13:10:44
【问题描述】:
我的查询如下:
string[] keys = txtSearch.Text.Split(' ');
var query = (from m in db.Messages
join r in db.Recievers on m.Id equals r.Message_Id
where (keys.All(k => (m.MessageText + m.Comments.Select(cmt => cmt.CommentText).ToString()).Contains(k)))
select m.Id).Distinct();
我收到以下错误:
在查询的 LINQ to SQL 实现中不能使用本地序列 除 Contains() 运算符外的运算符。
【问题讨论】:
-
似乎您不能将本地源字符串 [] 键与 db 源一起使用,如 where 子句中您正在使用本地源。使用 linq 翻译为 select * from local_source 并尝试
-
@Prathyush,我该如何解决?
-
附带问题:您希望从
Select(cmt => cmt.CommentText).ToString()得到什么? -
@IvanStoev,我希望所有 cmets 连接在一起。
-
如果您期望连接值,那么您的查询不正确,因为 Greg 也提出了相同的建议。