【问题标题】:Cannot add an entity that already exists in foreach无法添加已存在于 foreach 中的实体
【发布时间】:2013-07-30 09:12:44
【问题描述】:

我遇到了这个问题...试图弄清楚这一点,并搜索出来,但那里的解决方案但无法解决这个问题,一些回复会有所帮助。谢谢

    foreach (RepeaterItem item in Rptr.Items)
        {
            Label LblIncdntID         = (Label)item.FindControl("LblIncdntID");

            Guid g = new Guid(LblIncdntID.Text);

            _IncidentType.INCIDENTREPORT_ID = INCIDENTREPORT_ID;
            _IncidentType.INCIDENTREPORT_INCIDENTTYPE_ID = Guid.NewGuid();
            _IncidentType.INCIDENTTYPEID = g ;
            db.INCIDENTREPORT_INCIDENTTYPEs.InsertOnSubmit(_IncidentType);
            db.SubmitChanges();

        }

【问题讨论】:

  • 因为你的主键,你的主键是什么?
  • _IncidentType 是在 foreach 之外定义的吗?你应该在 foreach 中定义。你的主键应该是 indentity
  • 你有什么例外??

标签: c# asp.net linq linq-to-sql instance


【解决方案1】:

如果您使用的是 InsertOnSubmit,您还应该有一个:

_IncidentType = new IncidentReport();

在 foreach 循环中,在所有属性赋值之前。上下文依赖于插入的实体(并将某些元数据与实体相关联)并且可能会看到不匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多