2017-02-13 22 views
1

在模型中包含一個覆蓋方法以獲得與索引相關的值,例如:城市表與國家表相關,所以如果我將gridview數據源設置爲table.toList(),那麼它將添加id_country索引字段,通過在類上覆蓋ToString()方法,您可以在網格內設置國家名稱的返回值,它可以工作,但是EF模型在某些時候刪除覆蓋方法並且不會返回該值。這與重寫方法的EF自動生成的類,但最終它將被EF被刪除:爲什麼EF 6會自動刪除實體類中的重寫方法?

public partial class pais 
{ 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] 
    public pais() 
    { 
     this.comprador_vendedor = new HashSet<comprador_vendedor>(); 
     this.estado = new HashSet<estado>(); 
     this.exportacion = new HashSet<exportacion>(); 
    } 

    public int id_pais { get; set; } 
    public string nombre { get; set; } 

    public override string ToString() 
    { 
     return nombre; 
    } 

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] 
    public virtual ICollection<comprador_vendedor> comprador_vendedor { get; set; } 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] 
    public virtual ICollection<estado> estado { get; set; } 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] 
    public virtual ICollection<exportacion> exportacion { get; set; } 
} 
+0

請發表您的代碼,以便進一步排除故障的警告。 – Ethilium

回答

3

生成的類被每個模型更改覆蓋。

因此在頂部

//------------------------------------------------------------------------------ 
// <auto-generated> 
//  This code was generated from a template. 
// 
//  Manual changes to this file may cause unexpected behavior in your application. 
//  Manual changes to this file will be overwritten if the code is regenerated. 
// </auto-generated> 
//------------------------------------------------------------------------------ 

如果你想擴展類,只是創建相同的命名空間的另一部分類具有相同的名稱

+0

老實說,在這方面我很新,所以,請給我一些正確的方法來做到這一點? – AlexQuezada

+0

當然。看看這個答案是如何完成的http://stackoverflow.com/a/42161013/2921949 –

+0

謝謝!我會試試看! :d – AlexQuezada

相關問題