多个实例不能引用实体对象

时间:2018-02-09 16:44:12

标签: c# asp.net asp.net-mvc entity-framework

我将一些对象插入数据库,但是出现以下错误:

  

类型' System.InvalidOperationException'的例外情况发生在   System.Data.Entity.dll但未在用户代码中处理

     

附加信息:无法引用实体对象   IEntityChangeTracker的多个实例。

我试图研究并找到问题,但无法找到解决和理解问题的正确方法。任何帮助表示赞赏。

以下是导致错误的小型源部分:

SysUsers User = GetUser()
foreach (int country in data.countries) {
        foreach (int street in data.streets)
        {
            BrowsedData tempBrowsed = new BrowsedData();
            MapInfo tempInformation = WorldInformationController.FindInformation(country, street);
            tempBrowsed.Information = tempInformation;
            tempBrowsed.User = User;
            tempBrowsed.UpdatedBy = User;
            tempBrowsed.sDateTime = data.IndividualFiscalYearEnds
                                .Where(a => a.C_ID == country)
                                .Select(a => a.LastDate).FirstOrDefault();
            this.Database.BrowsedData.Add(tempBrowsed);
            this.Database.SaveChanges();
        }
    }

错误表示此行:this.Database.BrowsedData.Add(tempBrowsed);

1 个答案:

答案 0 :(得分:0)

您正在尝试将实体附加到您的上下文,但它已经附加到另一个实体。

您已查看此https://stackoverflow.com/a/10194299/1481690

我假设同样的问题

BrowsedData and MapInfo未使用相同的上下文实例

这也是同一主题中的另一个答案,可能有助于你的案例https://stackoverflow.com/a/27860667/1481690