实体框架错误删除拆分表

时间:2014-06-12 13:36:11

标签: c# entity-framework

我正在尝试从数据库中删除一个与其相关的拆分表的行,但是,我似乎无法删除拆分表关系。

以下是我要执行的代码

  public void DeleteProductItemSplit(ProductItem pi)
  {
     // ProductItemData is the split table
     var data = new ProductItemData() { Id = pi.Id };

     m_Context.ProductItemData.Attach(data);

     m_Context.ProductItemData.Remove(data);
  }

在第二行

     m_Context.ProductItemData.Attach(data);

我收到此错误

  

其他信息:违反了多重性约束。角色   'ProductItem_Data_Target'的关系   'UpdaterDataLayer.ProductItem_Data'具有多重性1或0..1。

如果我忽略了附加行,那么在尝试删除对象时会出现此错误

  

无法删除该对象,因为在该对象中找不到该对象   ObjectStateManager。

关于如何解决的任何想法?

由于

1 个答案:

答案 0 :(得分:0)

如果你想删除它,请使用:

public void DeleteProductItemSplit(ProductItem pi)
{
    m_Context.ProductItemData.Remove(m_Context.ProductItemData.Find(pi.Id));
}

Find允许您通过主键轻松获取元素。您可以调用导出的实体删除以最终删除它。