我正在为小项目使用Entity Framework 6设计代码优先数据库,并希望启用级联删除孤立数据。我们假设我有以下实体:
public class Document
{
public Guid DocumentId { get; set; }
public Guid DocumentSourceId { get; set; }
public Guid? DocumentResultId { get; set; }
public virtual DocumentSource DocumentSource { get; set; }
public virtual DocumentResult DocumentResult { get; set; }
}
public class DocumentSource
{
public Guid DocumentSourceId { get; set; }
public byte[] Content { get; set; }
}
public class DocumentResult
{
public Guid DocumentResultId { get; set; }
public byte[] Content { get; set; }
}
我可以使用以下代码配置删除DocumentResult:
modelBuilder.Entity<Document>()
.HasOptional(d => d.DocumentResult)
.WithOptionalDependent()
.WillCascadeOnDelete();
但我无法弄清楚如何配置DocumentSource的级联删除。 Document-DocumentSource是多对一关系,例如许多文档可以具有相同的源,因此我希望在没有更多的文档左引用时删除DocumentSource。这可以用EF 6实现吗?