5 Stimmen

Verwenden von Linq mit WCF

Ich suche nach Beispielen oder Anleitungen zur Verwendung von Linq über WCF (n-tier application). Bitte geben Sie an, ob Sie etwas für Linq-to-SQL oder Linq-to-entities zeigen. Ich würde gerne Verwendungsbeispiele für beide sehen.

Ich frage mich, wie Dinge wie die verzögerte Ausführung über WCF funktionieren (falls überhaupt)? Unterstützung für zyklische Verweise und so weiter...

Alle Informationen, um dies zu einem Schnellstartführer für die Verwendung von Linq mit WCF zu machen, sind hilfreich.

7voto

Mark Cidade Punkte 95914

Es gibt keinen LINQ-Provider, von dem ich für generische WCF-basierte Abfragen weiß. LINQ to ADO.NET Data Services ermöglicht es jedoch, ein Entity-Modell über WCF/REST abzufragen.

Aus Andy Conrads Blog:

    static void Main(string[] args)
    {
      var context=new WebDataContext("http://localhost:18752/Northwind.svc");

      var query = from p in context.CreateQuery("Products")
                  where p.UnitsInStock > 100
                  select p;

      foreach (Product p in query)
      {
        Console.WriteLine(p.ProductName+", UnitsInStock="+p.UnitsInStock);
      }
   }

1 Stimmen

Bedeutet dies, dass das verzögerte Laden von Linq-to-ADO.NET über WCF funktioniert?!

2voto

Eric Punkte 1353

Sie können einer WCF-Service eine Linq-to-SQL-Klasse hinzufügen. Gehen Sie dann zu Ihrem Datenkontext in der Linq-to-SQL-Klasse und legen Sie im Eigenschaftenfenster den Serialization-Modus auf Unidirektional fest.

Die Entitäten in Ihrer Linq-to-SQL-Klasse sind nun über den WCF-Service verfügbar :)

1voto

smaclell Punkte 4468

ADO.NET-Datendienste sind wahrscheinlich die beste Wahl. Es gab ein Codeplex-Projekt interlinq, um beliebige LINQ-Ausdrücke mit WCF verwenden zu können, die dann von einem anderen LINQ-Anbieter verarbeitet werden konnten, wie z.B. LINQ to NHibernate oder LINQ to SQL. Leider scheint dieses Projekt nicht sehr aktiv zu sein.

Viel Glück.

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