使用Linq C#的自定义属性

时间:2018-02-07 09:04:26

标签: c# entity-framework linq attributes

所以在我的Entity类中,我使用的是Description属性。在HTML视图中,我可以从描述属性中为每个正常工作的属性提取描述。

然而,我面临的问题是我的Entity类看起来混杂着每个属性的所有属性。

public int Id { get; set; }

[Description("Enter a name for the input. This is referenced in article 1010")]
public string Name { get; set; }

[Description("Enter a description for the input. This is referenced in article 1010")]
public string Description { get; set; }

[Display(Name="Required Dropdown")]
[Description("Select a role for the input. The role is based on your last job.")]
public int RequiredRoleId { get; set; }

在这个项目中,我使用了FluentValidation。 Validation类只应用于我的Entity类的顶部。

[Validator(typeof(InputValidation))]
public class Input : IEntityBase { }

InputValidation课程内,Fluent看起来像这样。

public class InputValidation : AbstractValidator<Input>
{
    public InputValidation()
    {
        RuleFor(u => u.Name).NotEmpty().WithMessage("Please enter a name").Length(1, 100).WithMessage("Please enter a name that does not exceed 100 characters");
        RuleFor(u => u.Description).Length(1, 500).WithMessage("Please enter a description that does not exceed 500 characters");
    }
}

有没有办法模仿FluentValidation在这里做什么,仅用于描述属性。所以自定义描述属性看起来像这样。

public class InputDescription : AbstractDescription<Input>
{
    public InputDescription()
    {
        DescriptionFor(u => u.Name).WithText("Enter a name for the input. This is referenced in article 1010");
        DescriptionFor(u => u.Description).WithText("Enter a description for the input. This is referenced in article 1010");
    }
}

然后在我的实体类中,我可以删除每个属性的所有Description属性,然后在InputDescription

下应用[Validator(typeof(InputValidation))]

这样的事情是否可能,如果可行的话呢?

0 个答案:

没有答案