Asp.net mvc 虽然值不同,但不会引发OptimisticConcurrencyException

Asp.net mvc 虽然值不同,但不会引发OptimisticConcurrencyException,asp.net-mvc,asp.net-mvc-3,entity-framework-4.1,Asp.net Mvc,Asp.net Mvc 3,Entity Framework 4.1,我有一个问题,OptimisticConcurrencyException没有被抛出,我有一个在我的HttpPost编辑上运行的代码 [HttpPost] public ActionResult Edit(IncidentViewModel incidentViewModel) { if(ModelState.IsValid) { Incident incident; if (IncidentView

我有一个问题,OptimisticConcurrencyException没有被抛出,我有一个在我的HttpPost编辑上运行的代码

[HttpPost]
    public ActionResult Edit(IncidentViewModel incidentViewModel)
    {
        if(ModelState.IsValid)
        {
            Incident incident;
            if (IncidentViewModel.TryParse(incidentViewModel, out incident))
            {
                Incident entry = _incidentManager.Find(entity => entity.Id == incident.Id);
                if(incident.Version != entry.Version)
                {
                }
如果我打开两个浏览器并通过同时编辑强制执行OptimisticConcurrencyException,则incident.Version和entry.Version的值不同,但不会引发异常

在my.edmx文件中,版本属性设置为StoreGeneratedPattern=Computed,并发模式=Fixed。类型为时间戳二进制

读了这篇文章,但这并没有真正阐明这个问题,我没有明白

编辑:.edmx文件和使用它的控制器位于两个不同的项目中,但解决方案相同

编辑: 这是我在管理器中的更新方法

public virtual void Update(T updatedEntry)
    {
        if (updatedEntry == null) throw new ArgumentNullException("updatedEntry");
        RequiredData(updatedEntry);
        Repository.Update(updatedEntry);
        Repository.Commit();
    }
我的存储库更新和提交是:

public void Update(T entity)
    {
        object originalItem;
        var key = Context.CreateEntityKey(Context.GetEntitySet<T>().Name, entity);

        if (Context.TryGetObjectByKey(key, out originalItem))
        {
            Context.ApplyCurrentValues(key.EntitySetName, entity);
        }
    }

public int Commit()
    {
        var saveValue = Context.SaveChanges();
        return saveValue;
    }

您的代码没有显示如何实际保存实体。请检查我的解释或。我想它是重复的。