2010-11-25 7 views
0

Ich versuche, einen einfachen WCF-REST-Service mit Daten von Linq zu SQL verfügbar zu machen.WCF und Linq 2 SQL

Das Problem ist, wenn ich untergeordnete Objekte habe (wie ein Benutzerobjekt, das UserAction-Objekte als untergeordnete Objekte hat) - ich bekomme ein leeres Ergebnis vom Dienst. Wie es scheint - der Dienst selbst arbeitet und die Daten werden bei Bedarf von Linq abgerufen, aber auf der Client-Seite - werden keine Daten angezeigt.

Wenn ich alle untergeordneten Objekte lösche, funktioniert es gut.

Irgendwelche Ideen, warum dies passiert und wie zu beheben?

EDIT: hinzugefügt, um den Webservice-Code für diesen Teil

[WebGet(UriTemplate = "TopUpdaters/{topx}", 
     ResponseFormat = System.ServiceModel.Web.WebMessageFormat.Json)] 
public List<User> TopUpdaters(string topx) 
{ 
    FulltankRepository rep = new FulltankRepository(); 
    var topusers = rep.GetTopUpdaters(int.Parse(topx)); 

    return topusers; 
} 

Dank!

+0

Haben Sie einen Komponententest der Methode durchgeführt und sehen Sie, ob Wetterdaten kommen oder nicht? wenn nicht, dann gibt es einen Fehler im Service? place Try {} catch {} Block um zu sehen, gibt es einen Fehler beim Abrufen von Datensätzen – Singleton

+0

und überprüfen Sie, dass Linq Abfrage von Child-Datensätze abrufen, ich vermute, es gibt ein Problem, wie Sie bereits gesagt, dass es Daten anzeigt, wenn kein Kind – Singleton

+0

ist Können Sie uns die Signatur der Servicevertragsschnittstelle zeigen? –

Antwort

1

Wenn Sie bestätigt haben, dass die untergeordneten Elemente auf dem Server im Speicher vorhanden sind, klingt es wie ein Serialisierungsproblem. Überprüfen Sie, ob Ihre UserAction-Eigenschaft für Benutzer für die Serialisierung markiert ist

[DataMember] 
public List<UserAction> UserActionChild 
{ 
get; 
set; 
} 
+0

Hallo, könnte dies auf Linq-Objekte geschehen? – Roman

+0

Ok - das war die Antwort. Musste die Serialisierung im Linq-Editor in unidirektional ändern - was die erforderliche Serialisierung wie erwähnt hinzufügte. – Roman