FK 到使用可为空 ID 的同一表


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

我想使用级联Delete将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);

尽管我不确定你是否希望在这样的关系上进行删除级联。

最新更新