2011-01-01 32 views
1

Für eine WPF-Client- und SQL Server-Datenbankanwendung möchte ich WCF-Datendienste für die Übergabe von Daten zwischen Client und Datenbank verwenden, aber ich finde den WCF-Client zu eingeschränkt in seinen Fähigkeiten. Komplexe LINQ-Abfragen mit JOINS usw. können nicht an den Server gesendet werden.WCF Datendienste oder etwas anderes?

Gibt es eine andere Technologie, die ich hier verwenden sollte, die komplexe LINQ-Abfragen vom Client zum Server unterstützt?

+0

Können Sie etwas genauer angeben, welche Art von "komplexen" LINQ-Abfragen Sie haben, die WCF Data Services nicht unterstützt? –

+0

Hallo Marc_s, ich habe versucht, eine Linq-Abfrage von Client, der einen JOIN-Operator, aber es funktioniert nicht funktionierte und später herausgefunden JOIN wird nicht in Linq Abfragen vom Client möglicherweise unterstützt, weil es nicht in eine gültige http uri konvertiert werden kann. Das hat mich dazu gebracht, mich zu fragen, ob die Datendienste von wcf reif genug für Apps auf Unternehmensebene sind. Vielen Dank. – user559788

Antwort

0

Es ist nicht ganz korrekt, dass Sie keine Daten mit OData (auch als WCF Data Services bezeichnet) verknüpfen können. Es ist nur so, dass LINQ to OData Joinsyntax nicht unterstützt. Sie können jedoch immer noch Ergebnisse aus der Überschneidung mehrerer Tabellen mit der Expand-Methode oder einfach durch Angabe einer Beziehung in einer SELECT-Klausel abrufen. Zum Beispiel, wenn Sie eine Tabelle Benutzer mit Beziehung zu Telefon Tabelle haben, können Sie schreiben "von Ihnen in ctx.User.Expand (" Telefon ") ...", oder Sie können schreiben "von Ihnen in ctx.User wählen Sie neu {u.Name, u.Phone} ", und es wird die Telefonsammlung abrufen.

Mir ist kein anderer RESTful-LINQ-Provider bekannt, der die Abfrage von SQL-Daten unterstützt.

+0

Danke Vagif. Ich werde die von dir vorgeschlagene Lösung versuchen. – user559788

+0

Danke Vagif. In meinem Fall ist der Benutzer im Entitätsmodell nicht direkt mit Phone verbunden. In meinem Fall ist das Telefon möglicherweise mit einem Benutzer, einem Kunden oder einem Verkäufer verbunden, also grundsätzlich keinem Elternteil. Daher habe ich die Telefontabelle nicht mit diesen "Eltern" -Tabellen in der Datenbank verknüpft. Die einzige Möglichkeit, diese in meinen Abfragen zu verknüpfen, ist die Verwendung von Entity SQL-JOINs. Die von Ihnen vorgeschlagene Lösung wird für meinen Fall nicht funktionieren. Vielleicht sollte ich einen anderen Ansatz versuchen. – user559788

Verwandte Themen