2008-10-01 13 views
5

Ich suche nach Beispielen oder Anleitungen zur Verwendung von Linq über WCF (n-Tier-Anwendung). Bitte geben Sie an, ob Sie etwas für Linq-to-SQL oder Linq-to-Entities anzeigen möchten. Ich würde gerne Anwendungsbeispiele für beide sehen.Verwenden von Linq mit WCF

Ich frage mich, wie Dinge wie Ausführung deaktiviert über WCF funktioniert (wenn es überhaupt funktioniert)? Zyklische Referenzen unterstützen und so weiter ...

Alle Informationen, die Ihnen einen schnellen Einstieg in die Verwendung von Linq mit WCF geben, sind hilfreich.

Antwort

7

Es gibt keinen LINQ-Provider, den ich für generische WCF-basierte Abfragen kenne. LINQ to ADO.NET Data Services können Sie jedoch ein Entity-Modell über WCF/REST abfragen.

Von Andy Conrad's blog:

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

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

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

Bedeutet dies, dass Linq-to-ADO.NET DEFFERED Laden über WCF funktioniert ?! – Phobis

1

ADO.NET Data Services ist wahrscheinlich die beste Wahl. Es war ein Codeplex Projekt interlinq der Lage sein, beliebige LINQ Ausdrücke mit WCF zu verwenden, die dann von einem anderen LINQ-Provider verarbeitet werden konnten, wie LINQ to NHibernate oder LINQ to SQL. Leider scheint dieses Projekt nicht sehr aktiv zu sein.

Viel Glück.

2

Sie können einem WCF-Dienst eine Linq to SQL-Klasse hinzufügen. Gehen Sie dann zu Ihrem Datenkontext in der Linq to SQL-Klasse und in den Eigenschaften Serialization Mode auf Unidirectional.

Die Entitäten in Ihrer Linq to SQL-Klasse wird nun durch den WCF-Dienst verfügbar sein :)