2012-07-02 4 views
2

Я пытаюсь добавить данные аннотации с использованием частичного класса.Голый частичный класс

Как вы можете видеть, что я добавил ИСПЫТАНИЯ к моему разделяемому классу, так что я могу проверить, если это действительно соответствует с другими частичными (как после этой статьи http://msdn.microsoft.com/en-us/library/ee256141.aspx)

Это кажется, что мой класс является голым частичный класс, поэтому я не уверен, что я делаю неправильно здесь.

Проблема заключается в том, что MetaData не применяется к частичному классу (так Partial класс игнорируется)

Не мог бы вы мне помочь? Thanks

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

Спасибо Damien, я редактирую свой вопрос, проблема в том, что METADATA в частичном классе делает hot apply soit, кажется, что частичный класс игнорируется – GibboK

+0

Вы пробовали [MetadataType (typeof (ReAdvSlot.ReAdvSlotMetaData))] или перемещаете класс метаданных из основного класса (не оба в то же время явно)? Иногда примеры на MSDN ошибочны, и в этом случае пример VB имел матадаты вне основного класса. –

ответ

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; } 

      } 
    } 
Смежные вопросы