问题描述
我正在尝试执行Cascade删除,但是它不起作用。
我的实体和数据库上下文是:
public class City
{
public int Id { get; set; }
public string Name { get; set; }
public int FKCountry { get; set; }
public Country Country { get; set; }
}
public class Country
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<City> City { get; set; }
}
public class CompanyContext : DbContext
{
public DbSet<City> City { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UsesqlServer(@"Server=vaio;Database=Company;Trusted_Connection=True;");
}
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
//Write Fluent API configurations here
modelBuilder.Entity<City>()
.HasOne(e => e.Country)
.WithMany(e => e.City)
.OnDelete(DeleteBehavior.ClientCascade)
.HasForeignKey(e => e.FKCountry);
}
}
.OnDelete(DeleteBehavior.ClientCascade)
List<City> dept = new List<City>()
{
new City(){Id=1},new City(){Id=2}
};
using (var context = new CompanyContext())
{
context.RemoveRange(dept);
await context.SaveChangesAsync();
}
城市将被删除,但相应的国家记录(应根据级联删除将其删除)不会被删除。为什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)