DBContext:
public DbSet<ProductNode> ProductNodes { get; set; } = null!;
public DbSet<VirtualStore> VirtualStore { get; set; } = null!;
modelBuilder.Entity<ProductNode>()
.HasOne(lpn => lpn.VirtualProduct)
.WithOne()
.OnDelete(DeleteBehavior.Cascade);
....
BackgroundService:
vphContext.VirtualStore.RemoveRange(virtualStoresInUse);
vphContext.ProductNodes.RemoveRange(nodesToRemove);
await vphContext.SaveChangesAsync(stoppingToken);
vphContext.VirtualStore.AddRange(newStores);
vphContext.ProductNodes.AddRange(newProductNodes);
await vphContext.SaveChangesAsync(stoppingToken);
DBContext:
public DbSet<ProductNode> ProductNodes { get; set; } = null!;
public DbSet<VirtualStore> VirtualStore { get; set; } = null!;
modelBuilder.Entity<ProductNode>()
.HasOne(lpn => lpn.VirtualProduct)
.WithOne()
.OnDelete(DeleteBehavior.Cascade);
....
BackgroundService:
vphContext.VirtualStore.RemoveRange(virtualStoresInUse);
vphContext.ProductNodes.RemoveRange(nodesToRemove);
await vphContext.SaveChangesAsync(stoppingToken);
vphContext.VirtualStore.AddRange(newStores);
vphContext.ProductNodes.AddRange(newProductNodes);
await vphContext.SaveChangesAsync(stoppingToken);