在EF核心中,软删除一对多关系可以通过以下步骤实现:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Order>().HasQueryFilter(o => !o.IsDeleted);
}
var order = context.Orders
.Include(o => o.Products)
.IgnoreQueryFilters() // 忽略全局查询筛选器
.FirstOrDefault(o => o.Id == orderId);
var product = order.Products.FirstOrDefault(p => p.Id == productId);
if (product != null)
{
product.IsDeleted = true;
context.SaveChanges();
}
需要注意的是,软删除只是将实体的状态标记为已删除,并不会从数据库中删除实际的记录。如果你想完全删除实体,可以使用EF核心的物理删除功能。
关于EF核心中软删除一对多关系的更多信息,你可以参考腾讯云的文档:EF Core软删除一对多关系。
领取专属 10元无门槛券
手把手带您无忧上云