这是我的疑问:
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是sql中的varchar类型
堆栈追踪:
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()