2012-07-02 29 views
2

我想使用部分類加入一些數據註釋。赤裸部分類

正如你可以看到我添加了一個測試性能到我的分部類,所以我可以測試它是否真的與其他諧音 匹配(如本文http://msdn.microsoft.com/en-us/library/ee256141.aspx以下)

看來,我的課是裸體部分類所以我不知道我在這裏做錯了什麼。

的問題是元數據並不適用於局部類(使局部類被忽略)

能否請你幫我嗎?謝謝

using System; 
     using System.Collections.Generic; 

     namespace MyProject.Models 
     { 

public partial class ReAdvSlot 
      { 
// Poco 
       public int AdvSlotId { get; set; } 
       public string Name { get; set; } 
       public string Description { get; set; } 
       public bool IsPublished { get; set; } 
       public string Code { get; set; } 
       public string Notes { get; set; } 
      } 

     } 
     using System.ComponentModel.DataAnnotations; 

     namespace MyProject.Models 
     { 
      [MetadataType(typeof(ReAdvSlotMetaData))] 
      public partial class ReAdvSlot 
      { 
       public class ReAdvSlotMetaData 
       { 
        public int AdvSlotId { get; set; } 
        public string Name { get; set; } 
        public string Description { get; set; } 
        public bool IsPublished { get; set; } 
        public string Code { get; set; } 
        public string Notes { get; set; } 
        public string TestProperty { get; set; } // TEST PROPERTY 
       } 
      } 
     } 
+0

「我不確定我在這裏做錯了什麼。」 - 我也不是 - 你沒有告訴我們問題是什麼(我可以看到) –

+0

感謝達米安,我編輯我的問題,問題是部分類中的METADATA確實熱適用似乎部分類被忽略 – GibboK

+0

您是否嘗試過[MetadataType(typeof(ReAdvSlot.ReAdvSlotMetaData))]或將元數據類從主類中移出(但不是同時顯而易見)?有時MSDN上的示例是錯誤的,在這種情況下,VB示例具有主類之外的matadata。 –

回答

0

部分類不被忽略。如果您要將Test屬性放入實際的部分類中而不是元數據中,則可以在類定義中看到它。

namespace MyProject.Models 
    { 

     public partial class ReAdvSlot 
      { 
       public int AdvSlotId { get; set; } 
       public string Name { get; set; } 
       public string Description { get; set; } 
       public bool IsPublished { get; set; } 
       public string Code { get; set; } 
       public string Notes { get; set; } 
      } 

     } 
    } 

    namespace MyProject.Models 
    { 
     [MetadataType(typeof(ReAdvSlotMetaData))] 
     public partial class ReAdvSlot 
     { 
      public string TestProperty { get; set; } // TEST PROPERTY here instead 
     } 

     public class ReAdvSlotMetaData 
      { 
       [Required] //Example of defining metadata 
       public int AdvSlotId { get; set; } 
       public string Name { get; set; } 
       public string Description { get; set; } 
       public bool IsPublished { get; set; } 
       public string Code { get; set; } 
       public string Notes { get; set; } 

      } 
    }