5 Stimmen

Gibt es eine Möglichkeit, LINQ-Abfragesyntax mit .NET 3.0-Projekten zu verwenden?

Ich habe ein Projekt, das nur auf einem Server mit .NET 3.0 ausgeführt werden kann. Ich möchte unbedingt LINQ verwenden, um einige quälend langweilige Logik zu vereinfachen. Gibt es einen einfachen Weg, das zu erreichen? Ich würde mich mit jeder Syntax zufrieden geben.

Vielen Dank

3voto

Justin Punkte 8548

Seit .NET 2.0 bis 3.5 läuft alles auf dem CLR 2.0, sind alle LINQ-Sachen nur eine Gruppe von Bibliotheken. Wenn Sie die fehlenden DLLs Ihrer Framework-Version einschließen, funktioniert es einwandfrei.

Wie Patrick sagt, sind die wichtigsten DLLs für 3.5 System.Core.dll (die System.Linq bereitstellt) und System.Data.Linq.dll (für Linq-to-SQL).

Wenn Sie dies tun, glaube ich, dass Sie System.dll von mindestens .NET 2.0 SP1 benötigen.

LINQBridge, wie von Marc zitiert, funktioniert durch die Neuimplementierung der Funktionalität, aber nur für Linq-to-Objects, glaube ich.

Eine weitere Option ist die Verwendung dieser gleichen DLLs (System.Core.dll und System.Data.Linq.dll) aus dem Mono-Projekt. Sie haben alle LINQ neu implementiert. Die Linq-to-Sql Sachen sind vielleicht ein wenig unreif, aber es hat den Vorteil, mit anderen Datenbanken als nur MSSQL zu arbeiten.

http://mono-project.com/Main_Page

Dies beseitigt alle Fragen zur Legalität der Verteilung von Microsoft-DLLs mit Ihrer Anwendung.

2voto

Marc Punkte 9084

Ein Kollege hat LINQBridge verwendet und war erfolgreich.

2voto

Patrick McDonald Punkte 61826

Entnommen von http://codebeat.wordpress.com/2008/06/23/using-linq-in-net-30/:

  1. Zuerst konfigurieren Sie das Ziel-Framework der Projekte, die Linq zu .NET 3.0 verwenden. Die .NET 3.5-Verweise werden entfernt.
  2. Kopieren Sie dann System.Data.Linq.dll und System.Core.dll in die Lösung, wo auch immer Sie es bevorzugen (in meinem Fall der Stammordner).
  3. Fügen Sie sie als Verweise in alle entsprechenden Projekte hinzu. Visual Studio wird Sie warnen, dass die Assemblys eine spätere Version des Frameworks benötigen. Drücken Sie auf Ja.
  4. Setzen Sie die Eigenschaft SpecificVersion der Verweise auf true. Dies verhindert Kompilierungsfehler.

Ich habe das ausprobiert und es hat funktioniert, aber seien Sie vorsichtig mit Mike Atlas' Warnung bezüglich der rechtlichen Konsequenzen beim Bereitstellen dieser 2 Dateien.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X