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()
Etes-vous sûr que la variable de requête contient des objets UserInterest? Sinon, il n'entrera pas dans la boucle for. –
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
Quand obtenez-vous l'erreur de distribution invalide? – Randolpho