Supprimer la colonne GUID générée automatiquement des pages Ajouter une entrée dans l'application Web Dynamic Data

StackOverflow https://stackoverflow.com/questions/454235

Question

J'ai une application Web Dynamic Data Entities qui utilise une base de données avec des GUID comme clés primaires pour les tables. La valeur par défaut de NEWID () est définie pour tous les champs GUID afin que SQL Server génère un nouveau GUID pour tout enregistrement. Toutefois, sur mon site Web de données dynamiques, dans les nouvelles pages d’entrée, le champ GUID apparaît et l’utilisateur est censé saisir des données. Comment puis-je empêcher l'affichage du champ?

Était-ce utile?

La solution

Selon MSDN :

" Vous pouvez masquer la clé primaire comme toute autre colonne en utilisant l'attribut Scaffold et en définissant sa valeur sur false. Étant donné que les clés générées automatiquement ne sont pas reconnues, les modèles de page Insérer par défaut ne fonctionnent pas avec EDM pour les tables comportant des clés primaires automatiques, sauf si vous créez une classe partielle pour l'entité et appliquez l'attribut Scaffold avec la valeur false. "

Par ailleurs, il est préférable d'utiliser " newsequentialid () " pour la valeur par défaut de Guid si vous utilisez SQL Server 2005 ou une version ultérieure, car elle est plus efficace pour l'insertion.

Autres conseils

Pas la bonne réponse ..

Après avoir fait cela, ce que j'ai fait, vous pouvez insérer un enregistrement qui donnera un GUID avec tous les zéros. Après cela, vous n'obtiendrez plus aucun message d'erreur, mais vous ne pourrez plus insérer d'enregistrements, à cause de la contrainte d'index unique sur le guid (qui est bien sûr une clé primaire).

Pour vraiment résoudre ce problème, vous devez éditer le fichier emdx et ajouter le

StoreGeneratedPattern="Identity"

dans votre balise de propriété Guid sous le " contenu SSDL " commentaire. Exemple:

   <Property Name="Guid" Type="uniqueidentifier" Nullable="false" StoreGeneratedPattern="Identity"/>

Si vous le faites dans le concepteur de Visual Studio, il annotera la balise de propriété sous la rubrique "Contenu CSDL". commentaire qui ne fonctionne pas ..

Utilisé Entity Framework 4.0 Visual Studio 10 et .NET Framework 4.0

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top