Я получаю следующее исключение при попытке выполнить следующий LINQ-запрос, вложенный в Lambda.
Невозможно создать постоянное значение типа. Только примитивные типы
(«такие как Int32, String и Guid») поддерживаются в этом контексте.
Если я удаляю лямбду, она работает нормально, но тогда я, конечно, не получаю желаемого результата.
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);
}
}
Есть какие-нибудь подсказки, почему я получаю исключение, что я сделал неправильно или другой способ сделать это?
Заранее спасибо за помощь.