Ошибка Entity Framework при удалении таблицы разбиения

1

Я пытаюсь удалить строку из базы данных, у которой есть разделительная таблица, связанная с ней, однако я не могу удалить связь split table.

Вот код, который я пытаюсь выполнить

  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.

Любые идеи о том, как их решить?

благодаря

  • 0
    Почему вы хотите прикрепить, а затем удалить продукт. ??
  • 0
    Я пытаюсь подписаться на этот пост stackoverflow.com/questions/8170975/… нет, я просто хочу, чтобы он был удален
Показать ещё 1 комментарий
Теги:
entity-framework

1 ответ

0

Если вы хотите удалить его, просто используйте это:

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

Найти позволяет легко получить элемент по первичному ключу. В результирующем объекте вы можете вызывать "Удалить", чтобы, наконец, удалить его.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню