据我所知,通过在相关实体上共享相同的ID,EF6实现了一对零或一的关系被投影到数据库中]
tutorial说:
一对零或一对一关系发生在主键为一个关系表中的另一个表中,该表成为PK&FK作为SQL Server。因此,我们需要在这样一个EF在数据库中创建Student和StudentAddresses表的方式并使Student表中的StudentId列为PrimaryKey(PK)和StudentAddresses表中的StudentAddressId列为PK和都为ForeignKey(FK)。
因此,如果
Website
具有可选的WebsitePage
,则可能会有这个:
public class Website { public int Id { get; set; } public virtual WebsitePage Page { get; set; } } public class WebsitePage { [Key, ForeignKey( nameof( Website ) )] public int Id { get; set; } public virtual Website Website { get; set; } }
但是如果我想要多个可选页面怎么办?
public class Website { public int Id { get; set; } public virtual WebsitePage AboutPage { get; set; } public virtual WebsitePage ServicesPage { get; set; } public virtual WebsitePage CaseStudyPage { get; set; } } public class WebsitePage { [Key, ForeignKey( nameof( Website ) )] public int Id { get; set; } public virtual Website Website { get; set; } }
可能今天我的谷歌搜索不合标准,但我无法在网上或在此处找到任何此类示例。
我错过了什么,还是我的理解有缺陷?
据我所知,EF6通过在相关实体上共享相同的ID来实现一对一或一对一的关系被投影到数据库中。该教程说:一对零或一...] >
起初,我误解了您想要实现的关系的标题。当我们在一个模型中有多个模型的多个引用时,就无法实现一对零或一个关系。您要求的是一对多关系;一方面,我们有1个WebsitePage
对象,另一方面,我们有n
个相关的Website
对象,它们可以具有1-3个WebsitePage
(请参阅注释)。为此,您可以使用Nullable外键