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 回答