ForeignKey关系为0或> 0值(EF 6.1)

时间:2014-05-22 11:24:58

标签: c# entity-framework entity-framework-6

我目前正在通过现有数据库上的代码创建模型来学习实体框架(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。

0 个答案:

没有答案