【发布时间】:2011-08-12 21:20:33
【问题描述】:
我在尝试执行以下与 Lambda 嵌套的 LINQ 查询时遇到以下异常。
无法创建类型为 的常量值。只有原始类型 ('例如 Int32、String 和 Guid')在此上下文中受支持。
如果我删除 lambda 它可以正常工作,但是我当然不会得到我想要的结果。
var context = new dbContext();
var searchQuery = (from q in context.Questions
where q.Topic.Contains(searchTerm) || q.QuestionText.Contains(searchTerm)
select q).ToList();
var questionsBasedOnTags = (from tags in context.Tags
where tags.Tag.Contains(searchTerm)
select tags).ToList();
List<QuestionHasTags> tagQuestionIds = new List<QuestionHasTags>();
foreach (var item in questionsBasedOnTags)
{
var getQuestionIds = (from q in context.QuestionHasTags
where context.QuestionHasTags.Any(o => o.TagId == item.TagId && !searchQuery.Any( w => w.QuestionId == o.Questions.QuestionId) && !tagQuestionIds.Any(z => z.QuestionId == o.Questions.QuestionId))
select q).ToList();
foreach (var questionHasTagId in getQuestionIds)
{
tagQuestionIds.Add(questionHasTagId);
}
}
关于我为什么会出现异常、我做错了什么或其他方法的任何线索?
提前感谢您的帮助。
【问题讨论】:
-
很难说,因为您使用了多个变量而没有显示它们的含义。
-
更新了代码块以包含更多相关代码。
标签: c# linq entity-framework exception lambda