【发布时间】:2013-01-15 23:21:51
【问题描述】:
每当我在上下文中执行对象时,都会遇到并发异常问题
我有这个:(我在网络表单上使用它)
using(entities ctx = new entities()){
EventModel newEvent = new EventModel{
Name = "name",
Description = "description",
CreationDate = DateTime.Now,
CreatedBy = CurrentUserId()
};
try{
ctx.EventModels.AddObject(newEvent);
ctx.SaveChanges();
}catch(OptimisticConcurrencyException ocex){
if(ctx.ObjectStateManager.GetObjectStateEntry(newEvent).State == EntityState.Added){
// proves that it is added.
}
}catch(Exception ex){
throw ex;
}
}
我现在不知道该去哪里看。我尝试了 sql profiler,我唯一注意到的是它尝试插入新实例两次。而已。没有错误或类似的东西。
想法?
顺便说一句:这是我得到的错误
存储更新、插入或删除语句影响了意外 行数 (0)。实体可能已被修改或删除 实体已加载。刷新 ObjectStateManager 条目。
编辑:这是在探查器上执行的 sql。相同的 sql 执行了两次。
exec sp_executesql N'insert [dbo].[EventModel]([Name], [Description], [CreationDate], [CreatedBy]) values (@0, @1, @2, @3)', @0="Name", @1="description", @2="2013-01-31 11:41:41.5231006", @3="1"
【问题讨论】:
-
如果您从分析器发布实际 SQL 会有所帮助,但看起来您的并发令牌设置不正确?
-
这实际上是我使用 sql profiler 检查是否有任何更新的原因。但是没有更新,它们都是插入(也是相同的)。
标签: asp.net entity-framework entity-framework-4 concurrency webforms