EF Core不删除相关实体

时间:2017-10-19 08:09:33

标签: c# entity-framework entity-framework-core

我尝试用它相关的实体删除我的实体,但实体框架不想这样做。

以下是代码:

        var tr = _context.Trees
            .Include(x => x.Translation)
            .FirstOrDefault(x => x.Id == 2);

        _context.Remove(tr);
        _context.SaveChanges();

背景:

  modelBuilder.Entity<Tree>().ToTable("h_tree");
  modelBuilder.Entity<Tree>().HasOne(x => x.Translation);

树类:

public class Tree 
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual Translation Translation { get; set; }
}

任何人都知道为什么不能删除相关实体?

翻译课程:

public class Translation 
{
    public long Id { get; set; }
    public string Pl { get; set; }
    public string En { get; set; }
    public string De { get; set; }
    public string Cz { get; set; }
    public string It { get; set; }
    public string Ru { get; set; }
    public string Fr { get; set; }

    public Translation()
    {

    }
}

1 个答案:

答案 0 :(得分:1)

你似乎错过了说这是一对一还是一对多的关系。

.HasOne()需要与.With*()方法配对。 .WithOne().WithMany()

您的翻译类似乎缺少外键。

添加名为TreeId的媒体资源,并在.WithOne()电话中使用该资源。