0

我正在開發一個MVC應用程序,我在開發它時使用了EF 4.0。我已經創建了模型中的類。現在,我想爲MVC創建的每個類添加更多的類。如何覆蓋部分類中的屬性?

ex。在下面的代碼中,我得到了類位置。 現在,我想創建一個類(部分類)如何重寫部分類中的屬性?

如何做到這一點?

namespace Entities 
{ 
    public partial class Location 
    {    
     public int Id { get; set; } 

     public string Name { get; set; } 
     public string Remark { get; set; }  
     public string State { get; set; }  
     public string Region { get; set; } 
     public string PinCode { get; set; } 

     public virtual ICollection<Comment> Comments { get; set; } 
    }  
} 
+0

你是什麼意思「重寫部分類的屬性」? – 2012-08-04 09:37:31

+0

我想對部分類中的屬性進行一些驗證。例如。我想在部分類中添加以下代碼'[StringLength(50,ErrorMessage =「Region最多可以接受50個字符。」)] public string Region {get;組; }' – nilesh1foru 2012-08-04 09:42:07

+0

爲什麼你不能放入你當前的課程? – 2012-08-04 09:46:34

回答

12

你可以做屬性裝飾部分類的接口

如果已經產生了下面的類(通過任何自定義工具)

public partial class Location 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string Remark { get; set; } 
    public string State { get; set; } 
    public string Region { get; set; } 
    public string PinCode { get; set; } 
    public virtual ICollection<Comment> Comments { get; set; } 
} 

您可以添加註釋屬性生成的類(不修改生成的文件)通過創建一個新的接口和一個新的部分類如下

public interface ILocation 
    { 
     [StringLength(50, ErrorMessage = "Region can accept maximum 50 characters.")] 
     string Region { get; set; } 
    } 

    public partial class Location :ILocation 
    { 
    } 
+0

謝謝,但我可以在哪裏編寫此代碼?在哪個級別 ?部分班(新班)?我不應該在生成的類中添加任何東西,因爲它會生成很多次,直到我的結構不能修復。 – nilesh1foru 2012-08-04 10:11:24

+0

@ nilesh1foru ive更新了我的答案,以適用於您的特定情況 – 2012-08-04 10:15:28

+0

再次感謝,但我可以在新班級中編寫上述代碼嗎? (新的部分類,新的代碼文件?) – nilesh1foru 2012-08-04 10:23:09

0

如果您只需要進行驗證,則可以使用所謂的元數據類型。

詳細教程是here