我尝试实现Metadatatype,以便将Validation属性从我的Acquisitiecode类分离到AcquisitiecodeAnnotations类中。
现在,当我向Acquisitiecode类添加属性(例如Required,StringLength等)时,验证将按预期进行。当我将这些属性移到AcquisitiecodeAnnotations类并使用MetadataType属性绑定该类时,我将无法工作。
请找到下面的代码示例(为了便于阅读,我将其剥离了)。此外,该项目是ASP.NET Core 3.0 Web应用程序。所有代码(包括示例)也都在.NET Core 3.0项目中运行。
代码段1:
using System;
using System.ComponentModel.DataAnnotations;
namespace Shared.Entities
{
[MetadataType(typeof(AcquisitiecodeAnnotations))]
public partial class Acquisitiecode
{ }
public partial class AcquisitiecodeAnnotations
{
[StringLength(4, ErrorMessage = "The value cannot exceed 4 characters. ")]
public string Acquisitiecode1 { get; set; }
}
}
代码段2:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace Shared.Entities
{
public partial class Acquisitiecode
{
public Acquisitiecode()
{
Lidmaatschap = new HashSet<Lidmaatschap>();
}
public string Acquisitiecode1 { get; set; }
public virtual Lid Lid { get; set; }
public virtual ICollection<Lidmaatschap> Lidmaatschap { get; set; }
}
}