Это мой запрос:обновление с помощью 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()
Вы уверены, что переменная запроса содержит какие-либо объекты UserInterest? Если нет, он не войдет в цикл for. –
Tim: Он содержит объект. Он входит в цикл, но никаких изменений в БД для этого сообщения не наблюдается – ltech
Когда вы получаете недопустимую ошибку при бросании? – Randolpho