title: EF zero-to-one FLUENT API Foreign Key on a NON Key
body: <p>I have a legacy database which has broken all the rules of Codd. Here are the entities</p>
  
  <pre><code>class Item {
        [Key]         
        public int ItemId {get;set;}
  
        public string ItemNo {get;set; }
  
        [ForeignKey("ItemId")]
        public virtual NumericItem {get;set;} //navigation
  
  }
  
  
  class NumericItem {  //This is a subset of the Item entity
  
        [ForeignKey("ItemId")]
        public Item Item {get; set;}
  
        [Key]         
        public int ItemNo { get; set; } //this is a primary key, different type
  
        public int ItemId { get; set; } //this is also a primary key  and a foreign key
  
  }
  </code></pre>
  
  <p>How do I tell EF Code first using Fluent API that NumericItem always has a Item and Item may or may not have a NumericItem. The cardinality is always zero/one</p>