我有两个型号EF代码优先1:* 1:同款
public class A{
public AID { get; set; }
public int? MainBID { get; set; }
[ForeignKey("MainBID")]
public B MainB { get; set; }
}
public class B{
public int BID { get; set; }
public int? AID { get; set; }
[ForeignKey("AID")]
public virtual A Owner { get; set;}
}
之间0..1关系,我要建模的关系是一个有许多B. A可能也有一个专门指定为B(主B)。
但是我有它设置有一个很难确定的本金和使用流利的方式:
modelBuilder
.Entity<A>()
.HasOptional(x => x.MainB)
.WithOptionalDependent();
它给了我多重未在关系中的作用“A_MainB_Source“A_MainB”有效。因为“依赖角色”属性不是关键属性,所以“依赖角色”的多重性的上界必须为“*”。
我想我的麻烦是试图向EF描述这些是两个单独的关系,而不是描述前后相同的关系。任何人都可以在这里指导我吗?
编辑:添加一个活生生的例子
我都需要建模的一系列教学课程(每一个被称为“模块”)。所有“模块”代表传达该特定课程信息的网页。每个模块可以有许多“资源”(可下载的二进制文件)。
某些模块可以有一个资源,表示与网页相同的信息。正如在某些模块中可以有一个可以打印出来并消耗的资源,而不是坐在您的机器前通过网页阅读。该网页的PDF版本。
所以在上面的每个模块都有很多资源。但是每个模块都可以有一个“特殊”资源,需要单独调用以及使用其他资源的地方。
我认为只是在资源上有一个标志,表明某种资源是特殊的,但是这将允许0 .. *这不是我想要的。我认为这可能更清洁。但我迄今还没有能够与EF合作。
你能给一个真实生活的例子,你正在尝试做什么? (我无法理解那种关系,A->很多B(你的模型看起来不是这样的) –
@LucianBumb看到我添加的编辑 –