2010-09-01 3 views
0

Je travaille sur une application Webforms (VS 2010, .net 4.0, VB) qui utilise SQL2008, Linq2Sql, les services de domaine et les données dynamiques. Mon problème est que lorsque j'essaie d'insérer un nouvel enregistrement, j'obtiens l'erreur: "..CustomerId est requis" mais l'ID est défini comme clé primaire et Identité dans la base de données et l'entité Client dans le L2S datamodel est également marqué commeLinq2Sql, DomainService & DynamicData 4.0 Erreur INSERT: "... ID requis"

<Global.System.Data.Linq.Mapping.ColumnAttribute(Storage:="_CustomerId", AutoSync:=AutoSync.OnInsert, DbType:="Int NOT NULL IDENTITY", IsPrimaryKey:=true, IsDbGenerated:=true)> _

il n'y a donc pas besoin de fournir manuellement un CustomerId.

Quelqu'un a-t-il eu la même expérience? Qu'est-ce que je fais de mal?

Merci d'avance pour votre aide.

GM

Voici une petite mise à jour: j'ai ajouté un autre projet, essentiellement la même configuration que ci-dessus mais sans classe DomainService. Donc, ce n'est que Linq2Sql et les données dynamiques. J'ai utilisé la même base de données. L'insert fonctionne bien, pas de hicks ici. Il semble donc que le problème est avec le service de domaine.

Toute aide serait appréciée.

Merci GM

Répondre

0

[réponse Copie à la asp.net thread si celui-ci se ferme aussi bien]

Salut Gerhard,

S'il vous plaît jeter un oeil à this thread, que je pense traite de la même question . Eh bien, il traite de deux questions distinctes et c'est l'une d'entre elles. En résumé, la solution consiste à ajouter un attribut ScaffoldColumn (false) à votre propriété ID dans la classe de métadonnées (celle générée lors de la création du service Web).

Hope this helps, David

+0

Merci David pour votre aide. Tadding un attribut ScaffoldColumn (false) aux champs ID (clé primaire dans chaque table) a résolu le problème. –