Messages les plus consultés

lundi 27 février 2012

Comment: créer une clé d'entité si aucune touche n'est inférée (Entity Framework)

Cet article décrit comment modifier manuellement un fichier. Edmx pour modifier une clé d'entité lorsque la Assistant Entity Data Model ou la mise à jour Assistant Modèle ne pouvait pas déduire une clé d'entité.
  Lorsque vous générez ou mettre à jour un fichier. Edmx avec l'Assistant Entity Data Model ou la mise à jour Assistant Modèle, la clé d'un type d'entité est mappée à la clé primaire de la table correspondante. Si aucune clé primaire n'est définie (par exemple, dans une vue), les outils tentera de déduire une clé d'entité unique basée sur les colonnes de la table ou vue.  La clé déduite sera composé de toutes les colonnes non-nullables et non-binaire de la table ou vue. Si la table ou vue ne contient que des colonnes nullables et binaire, aucune touche ne pourra être déduite.
Si aucune clé d'entité est déduit, l'entité ne sera pas ajouté au modèle. un commentaire de code qui contient l'élément EntityType (sans clé définie) sera ajouté à la section SSDL du fichier. Edmx.
Pour plus d'informations sur les clés d'entité, voir Élément EntityType (CSDL) et Élément EntityType (SSDL) .
 Les procédures décrites dans cette rubrique supposent que vous disposez d'un fichier valide. Edmx ouvert dans Visual Studio.

Changes made to the SSDL section of an .edmx file, as suggested in the procedures below, will be overwritten if you use the Update Model Wizard to update your model. Les modifications apportées à la section SSDL d'un fichier. Edmx, comme suggéré dans les procédures ci-dessous, seront écrasées si vous utilisez l'Assistant Modèle Update pour mettre à jour votre modèle. To avoid manually editing the .edmx file in this case, modify your database schema so that each table has a primary key or so that one or more columns of each table or view is non-nullable or non-binary. Pour éviter de modifier manuellement le fichier. Edmx dans ce cas, de modifier votre schéma de base de données de sorte que chaque table a une clé primaire ou de telle sorte que une ou plusieurs colonnes de chaque table ou vue est non nulle ou non-binaire.

Ajout d'une clé d'entité si aucun clè n'est inférées à partir d'un tableau

La procédure suivante s'applique à un type d'entité qui correspond à une table. Cette procédure suppose que le fichier. Edmx est ouvert dans l'éditeur XML.
Si le concepteur d'entité ne peut pas déduire une clé d'entité sur la base des colonnes d'une table, l'entité ne sera pas ajouté au modèle. Au lieu de cela, un commentaire de code qui contient l'élément EntityType (sans clé définie) sera ajouté à la section SSDL du fichier. Edmx.

Pour ajouter une clé d'entité si aucune touche n'est déduit à partir d'un tableau

  1. Décommentez l'élément EntityType dans la section SSDL du fichier. Edmx.
  2. Définir la clé pour le type d'entité en ajoutant des éléments clés appropriés à l'élément EntityType. Pour plus d'informations, consultez Élément EntityType (SSDL) .
    Note 
    La ou les colonnes utilisées pour définir la clé d'entité doit identifier de façon unique une ligne dans la table.
  3. Dans la section SSDL, ajoutez un élément EntitySet qui spécifie la table à laquelle les cartes ajoutées type d'entité. Pour plus d'informations, consultez Élément EntitySet (SSDL) .
  4. Dans la section CSDL, ajouter un élément EntityType qui correspond au type entité SSDL ajoutée. Pour plus d'informations, consultez Élément EntityType (CSDL) .
  5. Dans la section de cartographie CS (conceptuel pour le stockage), ajoutez un élément EntitySetMapping qui spécifie le mappage entre les types d'entités ajoutées SSDL et CSDL. Pour plus d'informations, consultez Élément EntitySetMapping (MSL) .

Ajout d'une clé d'entité si aucun clè n'est inférées à partir d'une vue

La procédure suivante s'applique à un type d'entité correspondant à une vue. Cette procédure suppose que le fichier. Edmx est ouvert dans l'éditeur XML.
Si le concepteur d'entité ne peut pas déduire une clé d'entité sur la base des colonnes d'un point de vue, l'entité ne sera pas ajouté au modèle. Au lieu de cela, un commentaire de code qui contient l'élément EntityType (sans clé définie) est ajouté à la section SSDL du fichier. Edmx.

Pour ajouter une clé d'entité si aucune touche n'est déduit à partir d'un point de vue

  1. Décommentez l'élément EntityType dans la section SSDL du fichier. Edmx.
  2. Définir la clé pour le type d'entité en ajoutant des éléments clés appropriés à l'élément EntityType. Pour plus d'informations, consultez Élément EntityType (SSDL) .

    La ou les colonnes utilisées pour définir la clé d'entité doit identifier de façon unique une ligne dans la vue.
  3. Ajouter une requête définissant le modèlePour plus d'informations, consultez Comment: ajouter une requête Définition (Entity Framework) .

Aucun commentaire:

Enregistrer un commentaire