删除时的实体框架核心级联,

时间:2018-04-10 06:05:41

标签: c# entity-framework asp.net-core entity-framework-core

我尝试将我的实体配置为具有适当的关系。 我想配置它,当我删除类别实体时,它应该从数据库中删除它的翻译和该类别的所有产品(当然包括产品翻译)。

它有效但不完全。 在我删除类别的这一刻,此类别的所有产品都被删除,但翻译(类别和产品)仍然​​存在。

我的实体:

public class Product
{
    public Guid Id { get; protected set; }
    public Category Category { get; protected set; }
    public Translation Translation { get; protected set; }
}

public class Category
{
    public Guid Id { get; protected set; }
    public IEnumerable<Product> Products { get; protected set; }
    public Translation Translation { get; protected set; }
}

public class Translation
{
    public Guid Id { get; protected set; }
    public string English { get; protected set; }
    public string Polish { get; protected set; }
    public string Gernam { get; protected set; }
}

DbContext配置

modelBuilder.Entity<Category>().HasMany(x => x.Products).WithOne(x => x.Category)
    .OnDelete(DeleteBehavior.Cascade);


modelBuilder.Entity<Product>().HasOne(x => x.Category).WithMany(x => x.Products)
    .OnDelete(DeleteBehavior.Cascade);

可以配置dbcontext,它将按照我的意愿工作而不将类别和产品属性添加到翻译实体吗?

0 个答案:

没有答案