c# - Sys.WebForms.PageRequestManagerServerErrorException : An entity object cannot be referenced by multiple instances of IEntityChangeTracker

标签 c# asp.net entity-framework telerik-grid

故事:

当我尝试保存一些东西时出现了一个奇怪的错误,我收到了这条错误消息

An entity object cannot be referenced by multiple instances of IEntityChangeTracker.

我真的不知道那是什么以及为什么会出现,只有当我尝试保存我的插入和更新正在工作的东西时,它才会出现,只有当我尝试从我的 Telerik 网格中保存一些东西到数据库中时才会出现

    if (this.annualVacationList != null)
        {
            List<AnnualVacation> vacationToSave = this.annualVacationList;
            IEnumerable<AnnualVacation> existing = paramUser.AnnualVacations;
            foreach (AnnualVacation toSave in vacationToSave)
            {
                AnnualVacation existingItem = existing.Where(x => x.AnnualVacationId == toSave.AnnualVacationId).SingleOrDefault();
                if (existingItem == null)
                {
                    ctx.AddToAnnualVacations(toSave);
                }
                else
                {
                    existingItem.FromDate = toSave.FromDate;
                    existingItem.ToDate = toSave.ToDate;
                    existingItem.WorkingTime = toSave.WorkingTime;
                    existingItem.VacationDays = toSave.VacationDays;
                }
            }
        }
        ctx.SaveChanges();
    }

调试后,我发现 Project.Name.Designer.cs 中的代码失效了 ..... 哦哦

  public void AddToAnnualVacations(AnnualVacation annualVacation)
    {
        base.AddObject("AnnualVacations", annualVacation);
    }

最佳答案

嘿嘿

我以某种方式自己得到它, View 状态没有分离上下文,这就是我刚刚创建的问题

var tmp = new AnnualVacation
                    {
                        FromDate = toSave.FromDate,
                        ToDate = toSave.ToDate,
                        WorkingTime = toSave.WorkingTime,
                        VacationDays = toSave.VacationDays,
                        UserId = toSave.UserId
                    };

在上面的同一个 if 查询中 (if(existing Item==null)) 并且它有效 但仍然感谢所有试图帮助我的人^^

关于c# - Sys.WebForms.PageRequestManagerServerErrorException : An entity object cannot be referenced by multiple instances of IEntityChangeTracker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13647165/

相关文章:

c# - 使用 Mock HttpClient 进行 Mock Refit SDK 注入(inject)以进行集成测试

c# - 如何以编程方式创建新的 Mongo 数据库?

c# - 允许用户删除我的应用程序正在使用的文件?

C# ASP.NET - 如何检测浏览器类型

.net - Entity Framework 核心脚手架 "Could not find type mapping for column with data type 'hierarchyid'。跳过列"

c# - 如何使用 XML 存储/加载 IntrinsicCameraParameters

jquery - 如何将数据从 MVC Controller 传递到 jQuery.ajax

c# - Define() (PHP) 替代 ASP.NET (C#)

c# - Entity Framework —— View 与表

c# - 用于生成结构以填充树的查询或算法(C#、LINQ)