2009-11-18 2 views
0

Это мой запрос:обновление с помощью 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() 
} 

Ошибка не вызывается, однако, когда я смотрю на мою БД записи, никаких изменений не происходит. EmailAddress станет значением, разделенным запятой, и, следовательно, цикл foreach выше

Почему это не выдает ошибку, но не обновляет запись db.

Ошибка, которую я получаю, это неправильная ошибка при бросании. Prompotion тип VARCHAR в SQL

трассировки стека:

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

Вы уверены, что переменная запроса содержит какие-либо объекты UserInterest? Если нет, он не войдет в цикл for. –

+0

Tim: Он содержит объект. Он входит в цикл, но никаких изменений в БД для этого сообщения не наблюдается – ltech

+0

Когда вы получаете недопустимую ошибку при бросании? – Randolpho

ответ

Смежные вопросы