efcore从主体到零关系级联

时间:2018-06-14 09:48:20

标签: ef-core-2.0

在efcore 2.0中我试图找出如何配置它:

假设我有两个表UploadBlogPost以及一些将上传网址保存到上传中的表格。所以upload表格不需要为任何其他想要保存到其中的表格提供FK

class Upload{
    public int Id{get; set;}
    public string FileName{get;set;}
    public string SavedPath{get; set;}
}

//but each blog post need to know about its own upload
class BlogPost{
    public int Id { get; set; }
    public int Content { get; set; }
    public Upload Upload { get; set; }
}

根据this article,任何保存FK的表都是依赖的,任何包含主键的表都是主体。

但在这种情况下,BlogPost是主体,Upload是依赖。如果我删除了BlogPost,那么上传必须删除,而不是其他。

modelBuilder.Entity<BlogPost>(b=>{
    b.HasOne(bp=>bp.Upload).WithOne().OnDelete(DeleteBehavior.Cascade);
})

根据OnDelete文档,如果删除主体,它会删除相关项,在我的情况下应该是BlogPost,但是因为上传没有携带任何FK ,efcore错误地应用了级联。

我的问题是如何让efcore将BlogPost作为主体?或者我该如何处理这种情况?

0 个答案:

没有答案