Wie verwende ich Read-Only definierten Eigenschaften in Teil (Entity Framework) Klassen über ADO.Net Data Services

StackOverflow https://stackoverflow.com/questions/294849

Frage

Ich habe Objekte, die von Entity Framework definiert sind, die ich dann zusätzliche Methoden und Eigenschaften über partielle Klassen hinzugefügt. Ich denke, dass ich die meisten der Beschränkungen verstehen um zu tun, aber ich wollte etwas bestätigen, ich sehe (oder hoffentlich lernen, was ich tun müssen, um diese Arbeit zu machen).

Ich habe eine partielle Klasse, die dann eine schreibgeschützte Eigenschaft hat, dass ein paar der Elemente verwendet ein berechnetes Feld zu erstellen, das schreibgeschützt ist. Es war merkwürdig, dass die schreibgeschützte Eigenschaft, um zu sehen über die ADO.Net Data Services nicht mehr zurückgekommen, wie ich hatte gehofft / erwartet. das heißt ich erwartete die Eigenschaften auf der Entity Framework und der Eigenschaft, um zu sehen, die in Code über die partielle Klasse kommen über den Data Service Call definiertem.

Ist dies der Fall? Sind die Teilklassen vollständig ignoriert, wenn ADO.Net Data Services für Daten abfragen? Wenn ja, welche Art die beste Praxis ist für die Zeugung eines Nur-Lese-Eigenschaft auf eine Entität (wie ich die gleichen Teilklassen mit unterschiedlichen Namensräumen vermeiden möchte, die wurden ausgeschnitten und eingefügt in den beide Client-Seite und Server-seitigen Code-Basen).

War es hilfreich?

Lösung

Von einem Microsoft Foren Beitrag: ( finden Sie hier Beitrag )

  

„Ich glaube, Sie fragen:“ Wie ein hinzufügen   Nur-Lese-Eigenschaft zu einem vorhandenen   Einheit, die durch die EF ausgesetzt ist   Anbieter "? In V1, gibt es keine gute Möglichkeit,   um dies zu tun. Für EF, laden wir die   Metadaten, die EF-Metadaten api mit   und daher haben wir keine Reflexion nicht.   Daher zusätzliche Eigenschaften, die Sie   könnte über eine Teil-Klasse hinzugefügt   erhalten ignoriert.

     

Astoria hat noch nicht ein Konzept   Nur-Lese-Eigenschaften. Wenn wir also aussetzen   alle anderen Eigenschaften, die nicht Teil ist   des Modells, wissen wir nicht, wie man   befassen sich mit ihnen in Updates. Wir tun nicht   wollen Daten verlieren siliently in der   Server auch. "

So sieht es so aus ist Funktionalität, die nicht in der Lage ist, über ADO.Net Data Services ausgesetzt werden.

Andere Tipps

Es gibt zwei getrennte Bedenken hier - das Basismodell (EF) und die WCF / mex Schicht. Ihre zusätzlichen Eigenschaften werden nicht Teil des edmx Modells sein, aber ich frage mich, ob das Problem nicht mehr auf die WCF / mex Aspekt verwendet ist.

Doch selbst wenn es funktioniert, ADO.NET Data Services Transfers Daten , nicht Logik . So berechnet Eigenschaften unter Berufung ist keine sichere Option. Der Client nicht die Formeln hat - nur die ursprünglichen Werte

Um herauszufinden, welche es ist, versuchen Sie die Eigenschaft Lese- / Schreib machen (auch wenn der Schreib tut nichts nützlich), und sicherzustellen, dass der Wert hat ein [Datamember] Attribut, etc.

Ich denke, das Problem ist, dass mit XML-Serialisierung, es serialisiert nur Eigenschaften mit Get- und Set-Methoden. Sonst könnte es nicht Deserialisieren. Fügen Sie eine leere Menge Methode, um Ihr Eigentum und sehen Sie, wie Sie gehen.

Rob

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