Запрос как Linq, когда у вас нет Linq

У меня есть проект, над которым я сейчас работаю, но в настоящее время поддерживает только .NET Framework 2.0. Мне нравится linq, но из-за версии рамки я не могу ее использовать. То, что я хочу, - это не столько сторона ORM, сколько "запрос" (это даже слово?) Linq.

До сих пор самое близкое llblgen, но если бы было что-то еще более легкое, которое могло бы просто сделать запрос для меня, еще лучше.

Я также рассмотрел NHibernate, который выглядит так, будто он может приблизиться к тому, что я хочу, но он имеет довольно крутое обучение кривая и файлы сопоставления не слишком сильно меняют.

Если кто-то знает о чем-то, что даст мне похожий интерфейс запросов к Linq (или даже лучше, как заставить Linq работать с инфраструктурой .net 2.0), я бы очень хотел услышать об этом.

Ответ 1

Посмотрите на это:

http://www.albahari.com/nutshell/linqbridge.html

Linq - это несколько разных вещей, и я не уверен на 100%, какие биты вы хотите, но вышеупомянутое может быть полезным в некотором роде. Если у вас еще нет книги о Linq (я думаю, вы этого не сделали), то я обнаружил, что "Linq In Action" будет хорошим.

Ответ 2

Возможно, вы захотите проверить Subsonic. Это ORM, который использует шаблон ActiveRecord. Я уверен, что большинство его функций работают с .NET Framework 2.0.

Ответ 3

Чтобы повторить то, что сказал Лэнс, язык запросов SubSonic имеет свободный интерфейс, который не так хорош, как LINQ, но дает вам некоторые преимущества (проверка времени компиляции, intellisense и т.д.).

Ответ 4

LinqBridge отлично работает в .NET 2.0, и вы получаете все расширения Linq и язык запросов. Вам нужно VS 2008, чтобы использовать его, но вы уже знали это.

Однако Linq это не ORM. Это синтаксис запроса. Если вы хотите использовать Linq для запроса базы данных, вам понадобится .NET 3.5. Это потому, что 2.0 не обеспечивает механизм, необходимый для преобразования кода Linq на ваш любимый язык запросов базы данных.

Другими словами, если ORM - это то, что вам нужно, LinqBridge вам не поможет. Вам нужно проверить некоторые другие предоставленные предложения.

Ответ 5

Есть способ ссылаться на LINQ в .NET 2.0 Framework, но я должен предупредить вас, что это может быть против условий использования /EULA фреймворка:

LINQ в .NET 2.0 Runtime

Ответ 6

Прежде всего. Не может быть и речи о том, как заставить linq работать на 2.0. Это возможно, но на самом деле не что-то делать вне среды тестирования.

Самое близкое, что вы можете получить с точки зрения ORM/Dynamic Querying, это imho SubSonic, который я рекомендую для тех, кто застрял в С# 2.0

Ответ 7

LinqBridge выглядит неплохое место, так как у меня есть VS2008, мне просто нужно скомпилировать и развернуть сервер .net 2.0.

Я посмотрел SubSonic, и это также интересная альтернатива, но linqbridge, похоже, обеспечивает гораздо более близкое соответствие, поэтому мне не придется идти и изучать новый синтаксис ORM/query.