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; }
}
我想通过级联删除将 ReplyTo
和 ForwardOf
配置为 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);
尽管我不确定您是否希望对这种关系进行级联删除。
public class Email
{
public int Id { get; set; }
/// ...
public int? ReplyTo { get; set; }
public int? ForwardOf { get; set; }
}
我想通过级联删除将 ReplyTo
和 ForwardOf
配置为 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);
尽管我不确定您是否希望对这种关系进行级联删除。