Удалить запись с внешним ключом - PullRequest
0 голосов
/ 27 августа 2018

У меня проблемы с моим DELETE. Если у записи есть FK, которую запись не удалит, я попытался реализовать подход мягкого удаления, добавив немного столбец IsDeleted и установив правила ... но это такжезря .. вот мой код

// DELETE: api/ProductCategory/5
[Authorize]
[ResponseType(typeof(Product_Category))]
public async Task<IHttpActionResult> Delete_Product_Category(int id)
{
    Product_Category Product_Category = await db.Product_Category.FindAsync(id);

    if (CRM_Product_Category == null)
    {
        return NotFound();
    }

    db.Product_Category.Remove(Product_Category);
    await db.SaveChangesAsync();

    return Ok(Product_Category);
}

protected override void Dispose(bool disposing)
{
    if (disposing)
    {
        db.Dispose();
    }
    base.Dispose(disposing);
}

private bool Product_CategoryExists(int id)
{
    return db.Product_Category.Count(e => e.ProductCategoryID == id) > 0;
}

1 Ответ

0 голосов
/ 27 августа 2018

Это нормально, вы пытаетесь удалить категорию , но как БД должна обрабатывать продукты , связанные с этой конкретной категорией?

У вас есть 2Здесь можно выбрать:

1 - Проверить, есть ли у вас товары, связанные с категорией, и удалить их или изменить категорию.

2 - Удаление по каскаду.(Это удалит ваши связанные записи на каскаде БУДЬТЕ ОСТОРОЖНЫ)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...