У меня есть словарь, который я хотел бы использовать как предложение IN в запросе SQL.
У меня есть запрос Linq-To-SQL, в котором я хотел бы использовать ключи этого словаря для проверки полей в строках запроса.
например.
bool result = DataContext.Table.Any(res => MyDictionary.ContainsKey(res.field1));
По сути это похоже на
exists(select * from Table where field1 in (select id from DictionaryKeys))
, где DictionaryKeys
будет расширением Ключей в их собственную таблицу.
К сожалению, я получаю
System.NotSupportedException was unhandled
Message="Method 'Boolean ContainsKey(System.String)' has no supported translation to SQL."
Source="System.Data.Linq"
Я понимаю ошибку, но я изо всех сил пытаюсь обдумать проблему и найти другое решение.
Редактировать: Я подключаюсь к SQL 2005. Похоже, что это проблема поставщика подключений, потому что предложение Марка перевести в Список не работает для меня.
Есть идеи?