2010-05-16 5 views
7

Ich verwende das Entity Framework 4 und habe eine Frage:Wie kann ich eine Datenbankspalte im Entitätsmodell ausblenden?

Ich habe eine Passwort-Spalte in meiner Datenbank, die ich mit benutzerdefinierten SQL verwalten möchte. Also möchte ich nicht, dass das Modell etwas darüber weiß.

Ich habe versucht, die Eigenschaft in den Mapping Details Fenster zu löschen, aber dann bekam ich einen Übersetzungsfehler:

Error 3023: Problem in mapping fragments starting at line 1660:Column User.Password in table User must be mapped: It has no default value and is not nullable.

Also, ich die Spalte auf NULL festlegbare in der Datenbank vorgenommen und das Modell aktualisiert. Jetzt bekomme ich diesen Fehler:

Error 3004: Problem in mapping fragments starting at line 1660:No mapping specified for properties User.Password, User.Salt in Set Users. An Entity with Key (PK) will not round-trip when: Entity is type [UserDirectoryModel.User]

Irgendwelche Ideen bitte?

Danke, Nick

Antwort

4

Eine Möglichkeit, dies zu beheben, ist eine Ansicht Ihres Benutzertabelle zu erstellen, die das Passwort nicht Spalte enthält. Verwenden Sie dann die Ansicht in Ihrem Modell und nicht in der Tabelle.

+0

Danke. Das klingt praktikabel. –

10

Sie können die Eigenschaft einfach als privat markieren, indem Sie im EDMX-Designer den Eigenschaftenbereich verwenden: Unter der Codegenerierungsoption stehen die Optionen Getter und Setter zur Verfügung, die Sie von Public in Private ändern können.

+0

Danke. Das ist die schnelle Lösung. –

Verwandte Themen