【问题标题】:ef two relationsef 两个关系
【发布时间】:2012-10-10 11:16:52
【问题描述】:

我有以下 Entity Framework 5 代码第一类

public class Airplane
{
    public int Id { get; set; }

    public int LeftWingId { get; set; }
    public virtual Wing LeftWing { get; set; }

    public int RightWingId { get; set; }
    public virtual Wing RightWing { get; set; }
}

public class Wing
{
    public int Id { get; set; }
}

飞机有一个左翼和一个右翼(两者都是必需的)。机翼可能属于 0..1 飞机(作为左翼或右翼)或其他一些“飞行装置”。 删除飞机应该级联删除它的机翼。

如何在 code-first fluent API 中进行配置?

是否可以在 EF 中有两个 0..1 --- 1 关联并在两者上进行级联删除?

【问题讨论】:

    标签: ef-code-first associations entity-framework-5


    【解决方案1】:

    不幸的是,您不能将两个关联从同一个源表指向同一个目标表,同时对两者进行级联删除。

    但是,这不是因为 EF 的限制,而是 SQL server 的限制。

    来自answer on another question 的引用,您可能想查看:

    SQL Server 对级联路径进行简单计数,而不是 试图弄清楚是否确实存在任何循环,它假设 最糟糕并拒绝创建引用操作(CASCADE):您可以 并且仍然应该在没有引用的情况下创建约束 行动。如果你不能改变你的设计(或者这样做会妥协 事情)那么你应该考虑使用触发器作为最后的手段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-29
      • 2021-07-15
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多