C# 尝试为现有条目创建新关系时出现恼人的错误

C# 尝试为现有条目创建新关系时出现恼人的错误,c#,asp.net-mvc,entity-framework,ef-database-first,C#,Asp.net Mvc,Entity Framework,Ef Database First,我在数据库中建立了一个相当简单的多对多关系,并从中生成了 我需要能够在用户和订单之间创建关系(将用户分配给订单) 一切似乎都很好,但当我试着打电话时 db.Orders.Add(order); // Set all attached users to unchanged db.ChangeTracker.Entries<AspNetUser>().ToList() .ForEach(t => t.State = System.Data.Entity.EntitySt

我在数据库中建立了一个相当简单的多对多关系,并从中生成了

我需要能够在用户和订单之间创建关系(将用户分配给订单)

一切似乎都很好,但当我试着打电话时

db.Orders.Add(order);

// Set all attached users to unchanged
db.ChangeTracker.Entries<AspNetUser>().ToList()
    .ForEach(t => t.State = System.Data.Entity.EntityState.Unchanged);

try
{
    db.SaveChanges();
}
我确实注意到,奇怪的是,上面的错误引用了无效的对象名
OrderAspNetUsers
,但我数据库中的表肯定被称为
OrderAspNetUsers

这是多元化的一个奇怪问题吗


非常感谢您提供的任何帮助或建议,我真的不知道在这里该做什么

请在运行db.Orders.Add(order)后尝试调用db.SaveChanges()。然后,您可以调用ChangeTracker代码行并再次保存。我相信您遇到了一个并发问题,您添加了一个订单,其中包含一个AspNetUser作为属性,但在保存它之前声明它是不变的。我想把它写下来作为一个答案,但这更多的是一种预感而不是答案。@sjgallen谢谢你的评论。我最初是这样尝试的,但得到了
“违反主键约束'PK_dbo.AspNetUsers'。无法在对象'dbo.AspNetUsers'中插入重复的键。重复的键值是(3197712e-0c39-42ee-a596-6dc390898eb8)。\r\n调用
SaveChanges()时,语句已终止。“
-看起来它正在尝试将用户添加为新记录,但它们已经存在于数据库中。感谢您的尝试和添加的信息。我将对你们看到的错误做一些研究,可能是一些N+1问题,以防万一这是一个答案。我把问题投了赞成票以帮助你找到答案。我对解决方案很感兴趣。@sjgallen非常感谢,如果我能帮上忙,请告诉我。您看到这个问题/答案了吗?它有几个可能的答案。第二个很有趣,但要全部复习。
CREATE TABLE [dbo].[OrdersAspNetUsers] (
    [AspNetUserId]     nvarchar(128) NOT NULL FOREIGN KEY references [dbo].[AspNetUsers],
    [OrderId]    INT NOT NULL FOREIGN KEY references [dbo].[Orders],
    primary key (AspNetUserId, OrderId)
)