2010-05-16 12 views
7

J'utilise l'Entity Framework 4 et j'ai une question:Comment puis-je masquer une colonne de base de données dans le modèle d'entité?

J'ai une colonne de mot de passe dans ma base de données que je veux gérer en utilisant SQL personnalisé. Donc je ne veux pas que le modèle en sache quoi que ce soit.

J'ai essayé de supprimer la propriété dans la fenêtre Détails de Mapping, mais je suis une erreur de compilation:

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.

Alors, j'ai fait la nullable colonne dans la base de données et mise à jour du modèle. Maintenant j'obtiens cette erreur:

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]

Des idées s'il vous plaît?

Merci, Nick

Répondre

4

Une façon de résoudre ce problème est de créer une vue de votre table d'utilisateur qui ne comprend pas la colonne de mot de passe. Ensuite, utilisez la vue dans votre modèle plutôt que dans la table.

+0

Merci. Cela semble réalisable. –

10

Vous pouvez simplement marquer la propriété comme privée en utilisant le volet Propriétés dans le concepteur EDMX: Sous l'option de génération de code, il dispose d'options Getter et Setter que vous pouvez passer de Public à Privé.

+0

Merci. C'est la solution rapide. –