2009-03-12 8 views
3

Je dois utiliser des tables d'une base de données que je ne peux pas modifier (en utilisant un serveur lié). Donc une partie de mon schéma est une vue sur cette table et je ne peux pas créer un FK dans ma base de données. Lorsque je viens de créer l'association dans ADO.NET Entity Framework, je rencontre des problèmes car une deuxième colonne de la table DB externe contient un index et l'EF crée une clé d'entité (c'est la nom du descr de l'enregistrement - je pense qu'ils voulaient juste accélérer la commande là-dessus).ADO Entity Framework créant une clé d'entité indésirable

Lorsque je supprime la clé d'entité de cette colonne dans l'entité EF, elle se plaint que j'en ai besoin car la table sous-jacente contient une clé. Si je le laisse dans je ne peux pas le mapper sur quelque chose dans le mappage de table de EF.

Est-ce que quelqu'un sait ce que je devrais faire s'il vous plaît?

Répondre

4

Vous devrez éditer le fichier XML et supprimer la colonne de la clé. Recherchez la balise <EntityType> dans la section < edmx: StorageModels > (contenu SSDL). Supprimez <PropertyRef> dans la < Clé > qui ne fait pas partie de la clé primaire. Une fois que vous faites cela, vous pouvez définir "Entity Key" sur la propriété scalaire correspondante dans le concepteur à false, et EF ne deviendra pas fou. Vous ne serez plus invité à mapper cette colonne dans les associations.