Comment créer une chaîne en tant que clé primaire dans le cadre d'une entité!

entity-framework

Question

J'ai une table héritée contenant le nom et l'identifiant de l'employé. Désormais, l'ID employé est en caractère car il peut contenir des valeurs commençant par un alphabet. L'identifiant d'employé est le seul champ unique disponible dans la table.

J'utilise maintenant une vue pour capturer les données de la table (elle se trouve dans une base de données séparée). Mais le cadre de mon entité refuse d’identifier la vue en raison de l’absence de clé primaire int.

Toute solution à ce problème serait très appréciée car je ne peux pas toucher à la table de l’héritage.

Réponse acceptée

Mais le cadre de mon entité refuse d’identifier la vue en raison de l’absence de clé primaire int.

J'en doute. L'EF prend en charge les chaînes en tant que PK.

Mais les points de vue, bien sûr, ne peuvent pas avoir de PK. Ce qui signifie que vous devez faire un travail supplémentaire lorsque vous les utilisez avec EF, surtout si vous les mettez à jour. Voici comment .


Réponse populaire

Créez une autre colonne qui est un int et utilisez-la comme clé primaire. Les utilisateurs professionnels n'ont pas besoin de connaître cette clé.

Je suppose que l'application finale utilise un ID d'employé avec des chartes. Comme la première et la dernière date initiale d'embauche, quelque chose comme DB012210.

La manière dont la table est réalisée en interne n’a aucune importance pour l’appel appelant, vous pouvez donc ajouter un autre champ en tant que véritable clé primaire qui est un entier. Ensuite, il suffit de placer une contrainte unique sur le EmployeeId actuel, mais de ne pas l'utiliser comme clé primaire.



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow