C# 部分MetataData类中的构造函数

C# 部分MetataData类中的构造函数,c#,asp.net,asp.net-mvc,partial-classes,C#,Asp.net,Asp.net Mvc,Partial Classes,我有以下分部类,它为我的数据库第一个模型提供元数据 namespace Model.Metadata.Routing { [MetadataType(typeof(RoutingMetadata))] public partial class Routing { } public partial class RoutingMetadata { [DefaultValue("%")] publi

我有以下分部类,它为我的数据库第一个模型提供元数据

namespace Model.Metadata.Routing
{
    [MetadataType(typeof(RoutingMetadata))]
    public partial class Routing
    {

    }

    public partial class RoutingMetadata
    {          
        [DefaultValue("%")]
        public string Slot { get; set; }

        [Required(ErrorMessage = "This field is requied")]
        [DefaultValue(0)]
        public int BlockStart { get; set; }
        [Required(ErrorMessage = "This field is requied")]
        [DefaultValue(499)]
        public int BlockEnd { get; set; }
        [DefaultValue(-1)]       
    }
}
现在我想为Routing类添加一个构造函数,使其成为默认值

public Routing()
{
  Slot="%";
}
在哪里添加构造函数

[编辑] 部分类路由的另一半

 public partial class Routing
{      
    public string Slot { get; set; }
    public int BlockStart { get; set; }
    public int BlockEnd { get; set; }
}

您可以将构造函数放在任何一个分部类定义中,这取决于您认为最合乎逻辑的地方


当然,部分类定义的所有部分都需要具有相同的类名和命名空间,或者它们是不同的类。路由和无线路由不是同一个类,因为它们没有相同的名称。

嗯,插槽不是路由的属性。。。这是RoutingMetadata的一个属性。因此,您的构造函数主体没有意义……但它是数据库第一模型生成的另一个分部类中的路由成员。再见,好的。从一开始就知道这一点很有用:尽管在编辑过程中出于某种原因它被称为RadioRouting。但基本上,将构造函数放在任何一个类声明中……如果我在问题的顶部部分类路由中创建构造函数,它就不知道值槽。我是否必须将其他分部类中的所有值复制到此分部类中?不,构造函数应该看到分部类的其他部分中的属性。如果不匹配,则表示部分类定义有问题,例如,类名或命名空间不匹配。分部类的行为与任何其他类一样,只是您可以将它们拆分到多个文件中。顺便说一句,建议:不要过度滥用分部类,因为它会使您的代码库难以维护。我只会在类的一部分由工具生成时使用它们。此外,如果将属性从部分的一部分复制到另一部分,则会由于重复属性而导致编译错误,除非它们实际上不是同一类的一部分。对于生成的代码,这是可以的,但当然,您不应该将构造函数或任何其他自定义代码放在生成的部分中,因为它可能会被工具覆盖。是否检查了类的两个部分是否在同一命名空间中?