Приложение ASP.NET CORE 2.1
Привет всем,
У меня есть проект, который выдает ошибку, когда я пытаюсь удалить запись. Ссылки на первичный ключ существуют в таблице ProductDescription . Я попробовал метод API api для определения внешнего ключа. Куда я иду не так?
Модель
public class Product
{
[Key]
public int Id { get; set; }
public string ProductName { get; set; }
public string Price { get; set; }
public ProductDescription ProductDescriptions {get; set;}
}
public class ProductDescription
{
public int DescriptionId { get; set; }
public string Amount { get; set; }
public string Colour { get; set; }
public Product Product { get; set; }
}
Контроллер
public async Task<IActionResult> Delete(int? id)
{
if (id == null) return NotFound();
var products = await _context.Product
.SingleOrDefaultAsync(m => m.Id == id);
if (products == null) NotFound();
return View(products);
}
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id)
{
var product = await _context.Product.SingleOrDefaultAsync(m => m.Id == id);
_context.Product.Remove(product);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
ApplicationDbContext
protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity<Product>()
.HasOne(s => s.ProductDescription)
.WithMany()
.OnDelete(DeleteBehavior.Cascade);
base.OnModelCreating(builder);
}
public DbSet<Product> Products { get; set; }
public DbSet<ProductDescription> ProductDescriptions { get; set; }
Исключительная ошибка
Произошло необработанное исключение при обработке запроса.
SqlException: инструкция DELETE конфликтует с ограничением REFERENCE "FK_ProductDescription_Product_ProductId". Конфликт произошел в базе данных «FoodInventoryDB», таблица «dbo.ProductDescription», столбец «ProductId».
Заявление было прекращено.