[英]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.