C# 裸部分类

C# 裸部分类,c#,asp.net,data-annotations,partial-classes,C#,Asp.net,Data Annotations,Partial Classes,我正在尝试使用分部类添加一些数据注释 正如您所看到的,我在我的分部类中添加了一个测试属性,以便测试它是否真的与其他分部匹配 (如下文) 我的班级似乎是一个裸露的部分班级,所以我不确定我在这里做错了什么 问题是元数据不适用于分部类(因此分部类被忽略) 你能帮我一下吗?谢谢 using System; using System.Collections.Generic; namespace MyProject.Models { public

我正在尝试使用分部类添加一些数据注释

正如您所看到的,我在我的分部类中添加了一个测试属性,以便测试它是否真的与其他分部匹配 (如下文)


我的班级似乎是一个裸露的部分班级,所以我不确定我在这里做错了什么

问题是元数据不适用于分部类(因此分部类被忽略)

你能帮我一下吗?谢谢

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

分部类不会被忽略。如果要将测试属性放入实际的分部类而不是元数据中,则可以在类定义中看到它

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

            }
    }

分部类不会被忽略。如果要将测试属性放入实际的分部类而不是元数据中,则可以在类定义中看到它

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

            }
    }

“我不确定我在这里做错了什么。”-我也不确定-你还没有告诉我们问题是什么(我可以看到)谢谢Damien,我编辑了我的问题,问题是部分类中的元数据不热应用,所以部分类似乎不被重视您尝试过[MetadataType(typeof(ReAdvSlot.ReAdvSlotMetaData))]或者将元数据类移出主类(不是同时将两者移出)?有时MSDN上的示例是错误的,在本例中,VB示例的matadata在主类之外。“我不确定我在这里做错了什么。”-我也不确定-你还没有告诉我们问题是什么(我可以看到)谢谢Damien,我编辑了我的问题,问题是,分部类中的元数据不热应用,因此分部类似乎被忽略了您是否尝试过[MetadataType(typeof(ReAdvSlot.ReAdvSlotMetaData))]或将元数据类移出主类(不是同时两个)?有时MSDN上的示例是错误的,在本例中,VB示例的matadata位于主类之外。