ASP.NET Core MetaDataType Attribute not working
ASP.NET Core uses
Microsoft.AspNetCore.Mvc **ModelMetadataType**
instead of
System.ComponentModel.DataAnnotations.**MetadataType**
source
Try changing your attribute to [ModelMetadataType(typeof(ComponentModelMetaData))]
Entity class:
namespace CoreProject.Persistence.EFCore
{
public partial class User
{
public User()
{
Reader = new HashSet<Reader>();
Writer = new HashSet<Writer>();
}
public int UserId { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public string PasswordHashKey { get; set; }
public byte Role { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime CreatedUtc { get; set; }
public DateTime LastUpdateUtc { get; set; }
public byte Status { get; set; }
public bool Deleted { get; set; }
public DateTime? ActivatedUtc { get; set; }
public bool Test { get; set; }
public virtual ICollection<Reader> Reader { get; set; }
public virtual ICollection<Writer> Writer { get; set; }
}
}
Metadata (Both have to use the same namespace):
namespace CoreProject.Persistence.EFCore
{
[ModelMetadataType(typeof(IUserMetadata))]
public partial class User : IUserMetadata
{
public string FullName => FirstName + " " + LastName;
}
public interface IUserMetadata
{
[JsonProperty(PropertyName = "Id")]
int UserId { get; set; }
[JsonIgnore]
string Password { get; set; }
[JsonIgnore]
string PasswordHashKey { get; set; }
[JsonIgnore]
byte Role { get; set; }
}
}
Another way... use same namespace
public class ApirolesMetaData
{
[Required]
public string Name { get; set; }
}
[ModelMetadataType(typeof(ApirolesMetaData))]
public partial class Apiroles
{
}