Ich arbeite mit einem EF Code First Projekt, und alles ist gut. Ich habe eine einfache Klasse, Kunde. In meiner Kundenklasse habe ich ein Feld, das ich verschlüsseln möchte (Ja, ich weiß, dass ich auf DB-Ebene verschlüsseln kann, aber Anforderungen diktieren, dass ich auf Domänen-/Codeebene verschlüssle), also hoffe ich, dass ich etwas wie das Folgende machen kann:Entity Framework Code Zuerst nicht leerer Setter oder Getter?
Ich gehe jedoch davon aus, dass Entity Framework Code diese Eigenschaft beim Generieren des Schemas ignorieren kann, wenn der Setter eine Definition hat. Also meine Frage ist, gibt es eine Möglichkeit, EF Code First mit bereitgestellten Getters/Setter zu tun, oder sollte ich diese Funktionalität in einen Konstruktor verschieben? Sollte ich stattdessen eine der Methoden/Ereignisse überschreiben, die beim Speichern des Kontexts passiert?
EDIT * ** * ** * ** * ** * ** * ****
Als Hinweis, ich bin mit DataService, um die Daten über einen OData-Protokolldienst zu übertragen. Dies erzeugt automatisch die Methoden insert/update/select. Einige der Vorschläge erfordern das Erstellen einer zweiten Eigenschaft, aber die DataService-Klasse scheint die NotMapped-Eigenschaften nicht zu passieren. Dies wirft ein bisschen einen Knick in meine frühere Frage.
Wenn Sie eine Verschlüsselung für eine Zeichenfolge ausführen, würde ich vorschlagen, sie so nah wie möglich am Eingang zu platzieren. Wenn Sie 'FieldToEncrypt =" asdf ";' (Verschlüsselung, die in Setter gehandhabt wird) verwenden, ändern Sie zu 'FieldToEncrypt = MyEncryptionFunction.Encrypt (" asdf ");' –
Haben Sie es versucht? Es gibt eine Reihe ähnlicher Antworten zu SO, die darauf hindeuten, dass dies so funktioniert, wie Sie es wünschen. Siehe http://stackoverflow.com/questions/11962532/what-does-entityframework-code-first-do-with-property-getters-setters und http://stackoverflow.com/questions/8990319/have-a-custom -setter-on-property-for-ef-code-first-model-entity – Zeph
Der zweite von Ihnen angegebene Link scheint näher an dem zu sein, was ich brauche. Allerdings redet er darüber, das Feld nicht zu kartieren. Ich möchte, dass das Feld immer noch zugeordnet wird. Ich möchte nur, dass der gemappte Wert transformiert wird, bevor der Wert in der Datenbank feststeckt. Ich denke, ich habe eine tiefere Frage, und das ist: In EF-Code zuerst ruft der Code die Getter und Setter vor/nach dem Einfügen? – Richthofen