Frage Ist es immer besser, 'DbContext' anstelle von 'ObjectContext' zu verwenden?


Ich habe gerade heruntergeladen EntityFramework.dll v4.3. Ich habe eine Reihe von Fragen gefunden, die vergleichen DbContext gegen ObjectContext. Aber die meisten davon sind von 2010 oder Anfang 2011.

Ich würde gerne mehr über das Thema lesen. Genauer gesagt, gibt es Bücher darüber DbContext Ich kann meine Hände bekommen? Ich möchte auch ab heute wissen, wo die Grenzen liegen DbContext wenn man es mit seinem älteren Bruder vergleicht ObjectContext?

Ich realisiere es DbContext ist kompakter, da weniger Eigenschaften verfügbar sind. Dies deutet darauf hin, dass ich auswandern sollte ObjectContext. Aber, wenn ich diese Migration mache, werde ich irgendwelche Fähigkeiten aufgeben? Zum Beispiel habe ich das gelesen DbContext hat nicht die Fähigkeit STE (Self-tracking entities). Trifft das noch zu und ist es ein Problem?


10
2018-05-06 23:56


Ursprung


Antworten:


Ich würde gerne mehr über das Thema lesen. Insbesondere, gibt es irgendwelche   Bücher über DbContext Ich kann meine Hände bekommen?

Ihre Frage beginnt nicht gut, weil eine einzige Google-Abfrage Ihnen dafür eine Antwort gibt. Da ist ein ausgezeichnetes Buch über DbContext selbst - es enthält nichts über den Code First Ansatz, aber ich denke, das ist wirklich nicht der Punkt Ihrer Frage.

Ich habe eine Reihe von Fragen gefunden, die vergleichen DbContext gegen    ObjectContext. Aber die meisten davon sind von 2010 oder Anfang 2011.

Wenn Sie nur ersetzen möchten ObjectContext + EDMX mit DbContext + EDMX, der Vergleich ist immer noch der gleiche. DbContext ist ein Wrapper herum ObjectContext und sein Funktionsumfang ist nicht größer geworden, außer in Bezug auf die Funktionen, die sich auf Code First und Migrations beziehen.

Ich realisiere es DbContext ist kompakter, weil es weniger aussetzt   Eigenschaften. Dies deutet darauf hin, dass ich auswandern sollte    ObjectContext.

Ja, es ist kompakter und es vereinfacht die häufigsten Aufgaben, die Sie mit dem Kontext zu tun haben. Bei komplexeren Aufgaben können Sie trotzdem ein DbContext Instanz zu einem ObjectContext Instanz durch IObjectContextAdapter.

Aber, wenn ich diese Migration mache, werde ich irgendwelche Fähigkeiten aufgeben? Zum   Beispiel, ich habe das gelesen DbContext hat nicht das STE (Self-tracking   Entitäten). Trifft das noch zu und ist es ein Problem?

STE wurde für geschaffen ObjectContext und ich glaube nicht, dass es portiert wurde DbContext, aber Sie können versuchen, diese Fähigkeit selbst zu implementieren.

STEs sind nur eine Vorlage mit einer Idee, um ein Problem zu lösen. Es schien eine gute theoretische Lösung zu sein, wurde aber von der Entwicklergemeinschaft nicht sehr gut angenommen, da die Lösung für reale Szenarien nicht sehr gut ist. Es ist auch der Grund, warum andere wichtigere Merkmale entwickelt werden, anstatt die Vorlage zu verbessern oder zu portieren.


16
2018-05-07 09:59