I have a table Products and another table ProductDetails:
CreateTable(
"dbo.Products",
c => new
{
Id = c.Guid(nullable: false),
// other fields here
// ....
//....
})
.PrimaryKey(t => t.Id)
.ForeignKey("dbo.ProductType", t => t.ProductTypeId, cascadeDelete: false)
.ForeignKey("dbo.AspNetUsers", t => t.UserId, cascadeDelete: false)
.Index(t => t.UserId)
.Index(t => t.ProductTypeId);
CreateTable(
"dbo.ProductDetails",
c => new
{
Id = c.Guid(nullable: false),
// other fields here
// ....
//....
})
.PrimaryKey(t => t.Id)
.ForeignKey("dbo.Products", t => t.ProductId, cascadeDelete: false)
.Index(t => t.ProyectoId)
As you can see, when I created this table I disabled cascadeDelete. However, after some development I realized I need to delete a product. Now, my problem is that I can not just delete a product by doing something like this
var product = getProductById(Id);
_dbContext.Product.Remove(product);
_dbContext.SaveChanges();
How can I do to cascade delete my product table? can I do something like a query for cascadeDelete?
_dbContext.Product.cascadeDelete... //this is not real code
If it is not possible, how can I alter both my tables Products and ProductDetails.
Thanks
ProductDetailsbefore deleting theProductrecords, but that's exactly what delete cascade option is for.