繁体   English   中英

EF-如何使(复合)外键成为可选

[英]EF - How to make (composite) foreign key optional

我有3个模型:Order,Organization和OrderOrganisation。

OrderOrganisation的存在不是强制性的……但我不知道该如何告诉EF。

当前,如果我编写查询,它将使用内部联接而不是外部联接来联接到OrderOrganisation。

我想将其作为模型的一部分(如果可能的话)而不是在上下文中进行(因为它是一个大型数据库,并且我认为将上下文片段用于逻辑)。

这是我的模特。

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

    public virtual ICollection<OrderOrganisation> OrderOrganisations { get; set; }
}

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

    public virtual ICollection<OrderOrganisation> OrderOrganisations { get; set; }
}

public class OrderOrganisation
{
    [Key, Column(Order = 0)]
    public int OrderId { get; set; }

    [Key, Column(Order = 1)]
    public int OrganisationId { get; set; }

    [ForeignKey("OrderId")]
    public virtual Order Order { get; set; }

    [ForeignKey("OrganisationId")]
    public virtual Organisation Organisation { get; set; }
}

我需要包括什么?

我想我需要使某些内容可为空,但我无法解决。

谢谢

您不必在EF上的这种情况下创建交叉表。 我认为以下代码足以满足您的需求

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

    public virtual ICollection<Organisation> OrderOrganisations { get; set; }
}

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

    public virtual ICollection<Order> OrderOrganisations { get; set; }
}

然后,EF将为您创建OrganisationOrders命名表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM