Frage

Ich bin die Begegnung einen seltsamen Fehlers, wenn Linq-to-SQL mit ado.net Datendienste. Ich habe eine einfache Silverlight-Anwendung, die auf eine Remote-Datenbank verbindet. Ich habe zuerst die Linq-to-SQL-Klasse und einen Tisch auf den Designer gezogen. Dann habe ich einen ADO.NET Data Service, aktualisiert, um die Data Bezug auf die L2S Daten Kontext zu zeigen.

Zusammengestellt ohne Probleme.

Wenn ich öffnen Sie den Dienst in IE ich sofort eine Fehlermeldung erhalten, damit ich das folgende Attribut an den Datendienst hinzuzufügen:

[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)]

Dies bringt die detaillierte Fehlermeldung auf:

  

Die Ausnahmemeldung ist ‚On Datenkontext Typ‚DataClasses1DataContext‘gibt es eine Top-IQueryable Eigenschaft‚Tabelle1‘, deren Elementtyp ist nicht ein Entitätstyp. Stellen Sie sicher, dass die IQueryable Eigenschaft Entitätstyp ist, oder geben Sie die IgnoreProperties auf dem Datenkontexttyp Attribut diese Eigenschaft zu ignorieren

In diesem Fall auf eine Datenbank Tabelle I in den L2S Designern verwenden!

Was ist dieser Fehler und warum bin ich es bekommen?

War es hilfreich?

Lösung

Sie müssen Ihre Klassen mit dem Attribut DataServiceKey dekorieren.

Weitere Details zu Marcs Blog hier und ein MSDN-Blog hier (letztere spricht über viele Beziehungen viele, aber es deckt das DatServiceKey Attribut).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top