2015-10-20 261 views
0

我有兩個型號如下無法設置

public class np_claim_hdr 
    { 
     [Key] 
     public decimal CLAIM_ID { get; set; } 
     ---------- 
     --------------- 
     -------------- 
    [InverseProperty("header")] 
     public virtual IList<np_claim_dtls> np_claim_dtls { get; set; } 
} 


public class np_claim_dtls 
    { 
     [Key] 

     public decimal CLAIM_ID { get; set; } 


     [ForeignKey("CLAIM_ID"), InverseProperty("np_claim_dtls")] 
     public virtual np_claim_hdr header { get; set; } 
     public string PROV_CODE { get; set; } 
     public string PROV_DESC { get; set; } 
     public string PRIMARY { get; set; } 
} 

當我設置模式np_claim_hdr它給我錯誤有關的np_claim_dtls

我行的對象場/在實體類型屬性嘗試下面

np_claim_hdr header = new np_claim_hdr(); 
header = db.np_claim_hdr.Find(1500); 

,它是進入內部相同的np_claim_dtlsnp_claim_hdr價值,但價值是給誤差在屏幕截圖所示下面

enter image description here

類型的「System.Data.Entity.Core.EntityException」 發生在EntityFramework.dll例外,但是在用戶代碼

附加沒有處理信息:無法設置字段/屬性np_claim_dtls 實體類型 System.Data.Entity.DynamicProxies.np_claim_hdr_047D7A4CFCF9316F6A7AEE7D891D9077FC5B931247DC389C8EB4D53A2F935577。詳情請參閱InnerException。

的InnerException:確保源類型轉換到 目標類型。

的InnerException:當從數鑄造,值必須小於無窮

回答

0

一些 我發現這個問題。發佈它的答案是因爲它可能在未來幫助他人。

在這兩個模型被用來作爲CLAIM_ID[Key]因爲np_claim_hdr主鍵的CLAIM_IDnp_claim_dtls使用的外鍵是不可能的。因此,爲模型np_claims_dtls指定另一個主鍵解決了問題

public class np_claim_hdr 
    { 
     [Key] 
     public decimal CLAIM_ID { get; set; } 
     ---------- 
     --------------- 
     -------------- 
    [InverseProperty("header")] 
     public virtual IList<np_claim_dtls> np_claim_dtls { get; set; } 
} 


public class np_claim_dtls 
    { 
     [Key] 
     public decimal ID { get; set; } 

     public decimal CLAIM_ID { get; set; } 


     [ForeignKey("CLAIM_ID"), InverseProperty("np_claim_dtls")] 
     public virtual np_claim_hdr header { get; set; } 
     public string PROV_CODE { get; set; } 
     public string PROV_DESC { get; set; } 
     public string PRIMARY { get; set; } 
}