我目前正在通过现有数据库上的代码创建模型来学习实体框架(6.1),所以很遗憾我无法更改数据库结构所以我'我有很多令人头痛的问题,但是慢慢地解决问题并在网上搜索它们,但是我找到了一个我无法找到答案的答案。
我有两个课程 - 为了便于显示而分解,他们有更多的领域,但这里不需要。
partial class detail {
public int id {get; set;}
public int owner {get; set;}
public string data {get;set;}
[ForeignKey("owner")]
public virtual owner theowner {get;set;}
}
partial class owner {
public int ownercode {get;set;}
public string name {get;set;}
[ForeignKey("ownercode")]
public virtual ICollection<detail> ownerdetails {get;set;}
}
(详细信息只能有一个所有者,但拥有者可以拥有许多详细信息)
我遇到的问题是&#34;所有者&#34;详细信息表中的字段可以是 0 或数字&gt; 0 。如果它为零,那么没有所有者,如果它> 0,那么应该有一个所有者(theowner虚拟财产)。
我已尝试将以下内容放入OnModelCreating,
modelBuilder.Entity<detail>()
.HasOptional(o => o.owner);
但我收到以下错误:
mynamespace.detail_owner ::多重性与 角色&#39; detail_owner_Target&#39;中的参照约束谈恋爱 &#39; detail_owner&#39 ;.因为Dependent Role中的所有属性 是不可为空的,主要角色的多样性必须是&#39; 1&#39;。
所以我的问题是如何映射&#34; theowner&#34; &#34;所有者&#34;在详细信息类中的虚拟属性到所有者类属性大于零,当它为零时,所有者&#34;属性应为null。