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

1 に答える 1

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

            }
    }
于 2012-07-05T18:16:27.503 に答える