Frage

Gibt es eine Möglichkeit, den Entity Framework-Klassen-Builder zu übernehmen?Ich möchte in der Lage sein, meinen eigenen Klassenersteller zu haben, damit ich einige Eigenschaften erstellen kann, um bei der Materialisierung andere Methoden aufzurufen, oder die Entitätsklassen partiell machen kann.

War es hilfreich?

Lösung

Tatsächlich sind sie bereits in Teilklassen.Sehen MSDN

Andere Tipps

System.Data.Entity.Design.EntityClassGenerator, ist der Typ, der in VS zum Generieren der Objektebene aus Ihrer .edmx-Datei verwendet wird, und es ist der Typ, der von EdmGen.exe zum Generieren der Objektebene aus einer .csdl-Datei verwendet wird.Nachfolgend habe ich die drei Möglichkeiten aufgelistet, wie Sie den generierten Code beeinflussen können.Die dritte Option erfordert, dass Sie EntityClassGenerator selbst aufrufen.Sie können Ihren Code automatisch in VS ausführen lassen, ähnlich wie bei einem SingleFileGenerator von mit dieser Technik präsentiert von Sanjay.

  1. Fügen Sie Code zu den Typen hinzu Teilklassen
  2. Fügen Sie Code hinzu Teilmethoden die von den generierten Klassen aufgerufen werden
  3. Haken Sie die Codegenerierungsereignisse um Code direkt in die Eigenschaften und Typen einzufügen, während diese generiert werden.Siehe Danny's Blogeintrag zum Beispiel

Ich füge hinzu, dass Sie nicht nur Ihren eigenen Kurs absolvieren können Teilklassen zu denen, die vom Entity Framework ausgegeben werden, Sie können aber auch alle ausschreiben Teilmethoden erstellt durch den generierten Code.

IE.Es wird eine Menge teilweiser Methodencode aufgerufen, aber die Methode selbst im generierten Code ist nicht wirklich implementiert.Dazu können Sie eine Teilmethode schreiben, um Ereignisse abzufangen, wenn sich Eigenschaften usw. ändern.Es ist keine schlechte Art, mit einigen Geschäftsregeln umzugehen.

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