2010-11-17 53 views
2

J'utilise RIA + Silverlight (probablement les dernières versions), Entity Framework. Lorsque j'insérer une ligne avec le codeException lors de la création d'une nouvelle entité dans RIA

var context = new DataService(); 
var script = new Script { Id = Guid.NewGuid(), User = User.Id }; 
context.Scripts.Add(script); 
context.SubmitChanges((o) => 
    {   
     if (!o.HasError) 
     {} // OK, but has never gone here yet 
     else 
     { 
     o.MarkErrorAsHandled(); 
     Messaging.MessageBox("some error" + o.Error.Message); 
     } 
     }, null); 

... il jette exception


Impossible d'insérer la valeur NULL dans la colonne 'Id', Scripts de table, la colonne ne permet pas les valeurs NULL. INSERT échoue.


Lorsque je tente de débogage, il va bien (au service), et cette entité (Script) A SET 'Id' à une valeur unique. Il semble que EntityFramework n'envoie pas cet 'Id' à la base de données. C'est possible ? :)

L'entité 'Script' a seulement deux colonnes: - Id (Guid), User (int), et n'a pas encore de clé étrangère.

Ai-je manqué de régler quelque chose? Je vous remercie.

Répondre

4

A l'origine, avez-vous créé la table sans une colonne Identity Specification, puis créé une identité pour le PK? Si c'est le cas, vous devez actualiser votre modèle.

Assurez-vous également que l'attribut [Key] est sur votre PK.

2

Ok, merci de votre réponse. Cela pourrait probablement fonctionner si je mettais à jour mon modèle à partir de la base de données. Mais je l'ai fait autrement - créé la base de données à partir du modèle.

Maintenant, je sais, je dois mis StoredGeneratedPattern de Identité à ** Aucun **

+0

Ceci est la réponse. J'ai eu le même problème. Merci!! – Houman