Gewusst wie: hinzufügen Serializable-Attribute, die in allen Entitäten generiert von Entity Framework 5.0
Ich bin mit EF 5.0 zu erzeugen POCO-Entitäten und deren Verwendung in ein separates Data Access layer
Möchte ich tag alle Entitäten [Serializable]
Wie ändern Sie die Vorlage zum hinzufügen von Serializable-Attribut?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nicht wollen, um die Vorlage Bearbeiten, können Sie auch dies in einem separaten code-Datei - wegen der Bequemlichkeit der
partial
Klassen. Also, wenn die Typen hier sindFoo
,Bar
undBaz
imMy.Namespace
namespace, erstellen Sie eine separate - Datei im gleichen Projekt mit:Diese werden dann zusammen mit den generierten Hälfte, die Anwendung der
[Serializable]
Attribut. Es wird auch ermöglichen es Ihnen, fügen Sie Ihre eigenen Methoden, um den Typen oder um den Körper für jedepartial
Methode Implementierungen, die die Vorlage erklärt.Ich soll, aber Vorsicht Sie:
[Serializable]
schlägt vor, Sie sind mitBinaryFormatter
; dies ist nicht unbedingt ein guter Kandidat. Es wäre besser, Blick auf Vertrag basierende serialisierungsprogramme. Ich wäre sehr überrascht, wenn der EF-Vorlage nicht bereits über die option, um die Ausgabe-Attribute fürDataContractSerializer
(insbesondere[DataContract]
/[DataMember]
).BinaryFormatter
sehr problematisch sein kann, wie Sie die version Ihrer software.IsSerializable
Flagge.wenn Sie entity framework 5.0 oder höher
Hinzufügen [Serializable] - tag zwischen diesen code:
Für Entity Framework 6, Hinzufügen Serializable über diese beiden Teile am Modell.tt
Folgenden sind die Schritte zu tun:
1) Öffnen Sie die ModelName.Entität.tt-Datei
2) Suchen Sie folgende Zeichenfolge in dieser Datei
3) Schreiben [Serializable] oberhalb dieser Linie, so wird der code wie folgt Aussehen
Speichern Sie die Datei , öffnen Sie die Entität Datei, können Sie sehen, dass es den Wunsch-tag geschrieben, dass Sie gar nicht zum generieren von Entitäten wieder.
Hier ist, was Sie tun, für EF 6 (mindestens);
In Ihrem Modell.tt-Datei, suchen Sie nach diesen Zeilen:
Ändern Sie diese:
Speichern Sie Ihre .tt-Datei und die entity-Klasse-Dateien bekommen
[Serializable]
- Attribut auf Sie.Getan.
Für EF 6 zu finden Versuchen Sie den folgenden code in
.tt
Datei:Es ist ein string-Platzhalter
("{0} {1}partial class {2}{3}")
Sie es ändern können, was immer Sie wollen,