J'ai une table composée d'une clé composite composée de deux champs int et d'un champ varchar (50). J'ai fait de la clé composite ma clé primaire, ce que je ne fais pas habituellement. Oui, oui, oui, je suis plus que familier avec la clé logique vs le débat clé substitut, mais j'ai dû faire des drogues lourdes (pas vraiment) le jour où j'ai fait la table depuis que je suis allé avec l'approche logique d'utiliser un substitut (ce que je fais presque toujours).Gestion pathétique des clés composites par LINQ
Mon problème: LINQ ne me permet pas de faire une mise à jour sur la colonne varchar (50) qui fait partie de la clé composite. Il lance l'exception "La propriété 'Value' fait partie des informations clés de l'objet et ne peut pas être modifiée." «Valeur» est le nom du champ (et s'il vous plaît ne me sermonnez pas en utilisant des mots réservés pour les noms de colonne ... comme je l'ai déjà dit, j'étais sous médicaments sérieux le jour de).
Alors, où est-ce que cela me laisse, d'ailleurs entre un rocher et un endroit difficile? La table en question possède réellement une colonne d'identité unique (même si ce n'est pas la clé primaire), et cette colonne est utilisée dans une clé étrangère à une autre table. Alors, bon sang, je ne peux pas très facilement faire un peu de piratage comme supprimer l'enregistrement en question et le rajouter, parce que cela me forcerait à garder la trace des fk dans d'autres tables et à les rajouter ensuite. Quel cauchemar ...
Quelqu'un connaît un moyen facile de contourner ce problème sans me forcer à apporter des changements importants à la structure de ma table?