У меня есть маленькая проблема, которую я не могу решить.
Я хочу использовать SQL-In-Statement в Linq. Я читал на этом и других форумах, что мне нужно использовать .Contains (с пометкой обратного мышления :-)).
В качестве входных данных у меня есть список направляющих. Сначала я скопировал их в массив, а затем сделал что-то подобное:
datatoget = (from p in objectContext.MyDataSet
where ArrayToSearch.Contains(p.Subtable.Id.ToString())
select p).ToList();
datatoget - это результат, в котором все записи, соответствующие Subtable.Id (который является Guid), должны быть сохранены.
Подтаблицей является таблица сведений из MyData, а идентификатором является тип Guid.
Я пробовал несколько вещей (конвертировать Guid в String, а затем с помощью .Contains и т. Д.),
но я всегда получаю исключение, которое говорит:
«Linq to Entities» не распознает метод «Boolean Contains (System.Guid)» и
Не может Перевести этот метод в выражение памяти.
(Как-то так, потому что я использую немецкую версию VS2008)
Я использую L2E с .NET 3.5 и программирую на C # с VS 2008.
Я прочитал несколько примеров, но это не работает. Возможно ли это из-за использования Guid вместо строк?
Я также пытался написать свою собственную функцию сравнения, но я не знаю, как ее интегрировать, чтобы .NET вызывал мою функцию для сравнения.