Я хотел бы определить класс для различных строк, какое ядро предприятия будет распознавать и применять определенные правила без аннотаций данных.[MaxLength(20)]
public string PhoneNumber { get; set; }
< /code>
для замены: < /p>
public PhoneNumber PhoneNumber { get; set; }
В этом сценарии класс Phonenumber будет иметь максимальную длину 20 при вызове Core Entity Framework Core.
public class PhoneNumber
{
private readonly string value;
private readonly long maxLength;
public PhoneNumber(string value, long maxLength = long.MaxValue)
{
if (value != null && value.Length > maxLength)
{
throw new InvalidOperationException(string.Format("Value is limited to {0} characters.", maxLength.ToString()));
}
this.value = value;
this.maxLength = maxLength;
}
public override string ToString()
{
return value;
}
public static implicit operator PhoneNumber(string phoneNumber)
{
return new PhoneNumber(phoneNumber);
}
public static implicit operator String(PhoneNumber phoneNumber)
{
return phoneNumber.value;
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... that-works