级联删除与EF 6的多对一关系

时间:2014-03-04 10:17:24

标签: c# .net entity-framework

我正在为小项目使用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实现吗?

0 个答案:

没有答案