FK 到相同的 table 使用可为空的 Id

FK to same table using nullable Id's

public class Email
{
    public int Id { get; set; }
    /// ...
    public int? ReplyTo { get; set; }
    public int? ForwardOf { get; set; }
}

我想通过级联删除将 ReplyToForwardOf 配置为 FK 到 Email.Id 属性。

试过这个: e.HasOne(nameof(Email.ReplyTo)).WithMany().OnDelete(DeleteBehavior.Cascade);

但是报错

The specified type 'System.Nullable`1[System.Int32]' must be a non-interface reference type to be used as an entity type. 我不希望有 Email 类型的导航属性,因为它们永远不会被我的代码使用。

这应该允许影子导航属性:

.HasOne<Email>()
    .WithMany()
    .HasForeignKey(x => x.ReplyTo)
    .OnDelete(DeleteBehaviour.Cascade);

尽管我不确定您是否希望对这种关系进行级联删除。