2009-11-18 2 views
0

Voici ma requête:mise à jour en utilisant LINQ - VS2008/C#

var query = (from v in _dataContext.UserInterests 
          join u in _dataContext.Users on v.UserId equals u.UserId 
          where u.Email.Equals(EmailAddress) 
          select v); 


foreach (UserInterest reg in query) 
{ 
    reg.Promotion = "1234-24323-1212"; 
    //other properties 

    _dataContext.SubmitChanges() 
} 

Aucune erreur est évoquée, mais quand je regarde mon dossier de DB, aucune modification. EmailAddress deviendra une valeur séparées par des virgules et donc la boucle foreach ci-dessus

Pourquoi ce qui précède génère pas d'erreur, mais ne parvient pas à mettre à jour le dossier db.

L'erreur que j'obtiens est une erreur de distribution non valide. Prompotion est un type varchar dans sql

Stack Trace:

at System.Data.Linq.IdentityManager.StandardIdentityManager.SingleKeyManager`2.TryCreateKeyFromValues(Object[] values, V& v) 
    at System.Data.Linq.IdentityManager.StandardIdentityManager.IdentityCache`2.Find(Object[] keyValues) 
    at System.Data.Linq.IdentityManager.StandardIdentityManager.Find(MetaType type, Object[] keyValues) 
    at System.Data.Linq.CommonDataServices.GetCachedObject(MetaType type, Object[] keyValues) 
    at System.Data.Linq.ChangeProcessor.GetOtherItem(MetaAssociation assoc, Object instance) 
    at System.Data.Linq.ChangeProcessor.BuildEdgeMaps() 
    at System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode) 
    at System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode) 
    at System.Data.Linq.DataContext.SubmitChanges() 
+0

Etes-vous sûr que la variable de requête contient des objets UserInterest? Sinon, il n'entrera pas dans la boucle for. –

+0

Tim: Il contient l'objet. Il entre dans la boucle mais aucune modification n'est observée dans la base de données pour cet e-mail. – ltech

+0

Quand obtenez-vous l'erreur de distribution invalide? – Randolpho

Répondre

Questions connexes