Language Integrated Query (LINQ) — проект Microsoft по добавлению синтаксиса языка запросов, напоминающего SQL, в языки программирования платформы .NET Framework. Довольно таки удобная технология, которая значительно ускоряет скорость разработки. Мой друг, с которым я учился, активно ее использует и очень доволен. У меня же все руки не доходили до LINQ.
Но вот наконец решил внедрить эту технологию в проект. Быстро набросал нужный функционал. Вроде бы все отлично. Ни на что студия не ругается. Запускаю компиляцию и бах...тьма ошибок. Компилятор вообще ничего не понял в тех строчках кода. Меня это в ступор ввело. Посмотрел ссылки - ссылка на библиотеку есть, в коде сборку подключил. Вроде все ок, но не работает. Ну думаю что-то не понял может, достал просто готовый, сто процентно работающий LINQ код и получил ту же проблему. У меня Visual Studio 2008, т.е. изначально LINQ должна поддерживаться, без дополнительных манипуляций.
Естественно после такого начал гуглить. Сколько не ковырялся, так и не нашел ответа на свой вопрос. Даже расстроился. Но не остановился на этом. Начал ковыряться дальше. Студия не ругается на код, все устраивает, а вот компилятору что-то не нравится. Тут думаю, а что если он компилит под другую версию .NET? Лезу в конфиг, конкретно указываю, что версия компилятора должна быть 3.5 и вуаля, все работает на ура. Вот такая вот ерунда, которая съела мое время.
В web.config после нужно добавить следующий код:
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>
</system.codedom>