У меня есть веб-сайт, который я разработал в VS 2008 с таргетингом на .net 3.5. Это сработало хорошо. Я недавно обновился до VS 2010 и мне нужно было внести несколько изменений в сайт. Тем не менее, я получаю ошибки компиляции (пока не вносил никаких изменений в код - просто запустил сайт, чтобы убедиться, что он работает нормально). Я получаю «Содержит» не является членом system.array. Все, что я прочитал, говорит о том, что метод contains был добавлен в .net 3.5, и я знаю, что он правильный, потому что он работал в VS 2008. Я нацелился на .net 3.5 в VS 2010, но он все еще не работает , Я также довольно часто использовал linq с linqkit для выполнения динамических запросов, и все мои запросы linq говорили, что мои запросы нельзя было запросить (у меня нет реальной ошибки передо мной). В любом случае, чтобы исправить это, мне пришлось импортировать system.linq (ранее у меня был system.data.linq, и он работал нормально). Повторюсь, я не нацелил свой сайт на .net 4 в VS 2010, я оставил его нацеленным на .net 3.5.
Я пытался преобразовать мои массивы в списки массивов, поскольку списки массивов все еще работали с методом .contains, но затем он прервал мои запросы linqkit, когда я запустил его на сайте.
Вот мой запрос linqkit:
Dim str() As String = archlist.ToArray(GetType(String))
Dim str3 As New ArrayList
str3 = ArrayList.Adapter(str)
predicate = predicate.And(Function(l As CompatTesting) str3.Contains(l.application.cpuarchitecture))
Раньше у меня не было преобразования arraylist, у меня просто был str.contains, и он прекрасно работал для генерации sql-выражения in. Теперь, после использования приведенного выше кода, сайт запускается, но когда я фактически запускаю код, я получаю, что метод «Boolean Contains (System.Object)» не поддерживает перевод на SQL. Я также попытался обновить dll linqkit до последней версии, но это не помогло.
Мои вопросы: поскольку в 2010 году я ориентируюсь на ту же платформу .net 3.5, почему она больше не позволяет мне использовать array.contains? Возможно, если я смогу решить эту проблему, это исправит мою проблему с linqkit, в которой говорится, что «содержит» не поддерживает перевод в sql.
Любая помощь будет оценена. Я не хочу возвращаться к версии 2008, чтобы исправить свой сайт ...