0

所以我的设置如下: SupportTicket - 包含一个名为 Messages 的 SupportTicketMessag 列表。SupportTicketMessage - 包含一个 UserProfile 和一条消息

我正在尝试使用以下方法将 SupportTicketMessage 添加到我现有的 SupportTicket 列表中:

public void AddReply(string message, UserProfile author)
{
    using (ContextDb db = new ContextDb())
    {
        SupportTicketMessage msg = new SupportTicketMessage(author, message);
        Messages.Add(msg);
        db.UserProfiles.Attach(Owner);
        db.Entry(this).State = EntityState.Modified;
        db.SaveChanges();
    }
}

但是,每当我尝试这样做时,都会收到以下错误:

ObjectStateManager 中已存在具有相同键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。

在以下行:

db.Entry(this).State = EntityState.Modified;

总结一下:我正在向列表中添加一个对象,并希望将该对象保存到数据库中。我怎样才能做到这一点?

4

1 回答 1

1

您不必显式更改对象的状态。Entity Framework 会自动为您执行此操作。

于 2013-07-31T17:53:24.977 回答