Я пытаюсь удалить строку из базы данных, у которой есть разделительная таблица, связанная с ней, однако я не могу удалить связь 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.
Любые идеи о том, как их решить?
благодаря
Если вы хотите удалить его, просто используйте это:
public void DeleteProductItemSplit(ProductItem pi)
{
m_Context.ProductItemData.Remove(m_Context.ProductItemData.Find(pi.Id));
}
Найти позволяет легко получить элемент по первичному ключу. В результирующем объекте вы можете вызывать "Удалить", чтобы, наконец, удалить его.