在efcore 2.0中我试图找出如何配置它:
假设我有两个表Upload
和BlogPost
以及一些将上传网址保存到上传中的表格。所以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作为主体?或者我该如何处理这种情况?