Hinzufügen von benutzerdefinierten Eigenschaftenattributen in Entity Framework-Code
Gibt es eine Möglichkeit zum hinzufügen von benutzerdefinierten Attribute, um die Eigenschaften der EF-generierten code? Das einzige, was ich sehen kann, wie eine plausible Lösung wäre, um mit einer benutzerdefinierten T4-Vorlage. Jedoch aufgrund der Natur des Attributs, es wäre unmöglich zu bestimmen, die richtige Attribut-parameter pro EF-Eigenschaft.
InformationsquelleAutor der Frage AKoran | 2009-06-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie tun dies durch die Angabe eines Metadaten-Typ, der Spiegel der Eigenschaften und ist einfach für die Zuteilung.
Steve Smith bloggt hier.
Leider dem obigen Ansatz ist spröde, refactoring. Eine weitere option ist die Verwendung der neuen POCO-Entitäten. Diese vermeiden compile-time code generation insgesamt, soweit ich das sagen kann. Ich habe nicht verwendet Sie noch so kann nicht kommentieren, irgendwelche Tücken oder Nachteile.
InformationsquelleAutor der Antwort Drew Noakes
Können Sie dieses EDMX-Datei, mit der Designer auch:
Und ersetzen von T4:
Mit:
InformationsquelleAutor der Antwort Antonio Gabriele
Können Sie erstellen, die Schnittstelle und declare-Attribut am interface.
InformationsquelleAutor der Antwort Chaowlert Chaisrichalermpol
Können Sie dieses EDMX-Datei, mit der Designer auch:
Und ersetzen von T4:
Mit:
Und für Entity Framework 6, ersetzen
mit
Warnhinweise:
Beispiel-Ausgabe:
InformationsquelleAutor der Antwort BurnsBA
Ich glaube nicht, dass Sie können. Der generator erklärt alle Klassen teilweise, so dass Sie zu verlängern, aber es wird Ihnen nicht erlauben, zu markieren-Eigenschaften mit benutzerdefinierten Attributen, wie es generieren Sie einfach über Sie. Die eine Sache, die Sie tun können, ist schreiben Sie Ihre eigenen Entitäten.
InformationsquelleAutor der Antwort
Neben BurnsBA die Antwort, die Anwendung dieser Navigations-Eigenschaften zu aktualisieren
NavigationProperty()
:Ich diese hinzufügen
[Newtonsoft.Json.JsonIgnore]
zu meinen Eigenschaften.Hinweis: Sie müssen diese zu
<...>Model.tt
und nicht<...>Model.Context.tt
InformationsquelleAutor der Antwort Vaibhav Garg