EF代码优先:如何在删除时创建1:many(单向)关系级联



这是我的型号:

public  class User
{
    public int     UserId { get; set; }
    public virtual ICollection<Shipment> Shipments { get; set; }
}
public class Shipment
{
    public int ShipmentId { get; set; }
    public int UserId {get; set;} 
}

任何用户都可能有0~多次发货。我想对相应的发货进行casccade处理,并在删除用户时自动删除它们。我不想通过制作虚拟用户属性[Requierd]来将关系设为BiDirdirectional.并从另一端删除OnCascade。谢谢

您可以通过如下重写"OnModelCreating"来实现上述功能。

public class DataContext : DbContext
{
    public DbSet<User> Users { get; set; }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<User>().HasMany(u => u.Shipments).WithOptional().WillCascadeOnDelete(true);
        base.OnModelCreating(modelBuilder);
    }
}

最新更新