Ich habe eine partielle Klasse und möchte Folgendes tun:
%Vor%das obige funktioniert jedoch nicht.
Gibt es eine Möglichkeit, die Basis-Entity-Framework-Klassen zu überschreiben, um benutzerdefinierte Getter / Setter zu ermöglichen?
Partielle Klassen haben nichts mit Vererbung zu tun, und override
dreht sich ausschließlich um Vererbung.
Das Schlüsselwort partial
für eine Klasse bedeutet nur, dass es in derselben Assembly mehrfach deklariert werden kann. Es ist genau so, als ob Sie jeden Teil von partial class
in die gleiche Datei kopiert und das Schlüsselwort partial
entfernt hätten. Da Sie dieselbe Eigenschaft / Funktion / etc nicht zweimal in derselben Klasse definieren können, können Sie sie nicht zweimal in zwei separaten Teilen derselben Klasse definieren, auch nicht mit dem Schlüsselwort partial
.
override
hingegen wird in abgeleiteten -Klassen verwendet, um anzugeben, dass sie die Funktionalität der Basisklasse ersetzen, von der sie erben. Wenn es nicht explizit erbt, erbt es von object
, wodurch Sie ToString()
(neben anderen) überschreiben können.
Die besten Möglichkeiten, um das zu tun, was Sie wollen, sind entweder eine benutzerdefinierte T4-Vorlage zum Generieren der Verschlüsselungs- / Entschlüsselungslogik oder das Festlegen der verschlüsselten Eigenschaften im Designer auf protected
oder private
und das manuelle Hinzufügen von public
. Versionen, die die Entschlüsselung durchführen.
Wenn Sie den Code-Generator ändern können, können Sie ihn einfach "emulieren" ("überschreiben" Standardwerte), indem Sie sehr leistungsfähige partielle Methoden verwenden.
Tags und Links c# entity-framework-5 asp.net-mvc-4