Мне любопытно, почему проверка данных выполняется с использованием дополнительных классов. Рассмотрим следующий пример, где MyEntity
- это сущность Linq-to-SQL или Linq-to-Entities, а приведенный ниже класс является частичным классом, расширяющим эту сущность.
[MetadataType(typeof(MyEntity.MyEntityMetadata))]
public partial class MyEntity
{
private class MyEntityMetadata
{
[Required(ErrorMessage = "The title is required.")]
public string Title { get; set; }
}
}
Почему такая конструкция? Почему при разработке DataAnnotations был выбран этот «шаблон приятеля»? Почему бы не разместить атрибуты непосредственно в сущности?