【发布时间】:2011-02-24 20:00:33
【问题描述】:
我很好奇为什么使用伙伴类来完成数据验证。考虑以下示例,其中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的时候,为什么会选择这种“伙伴模式”呢?为什么不直接将属性放在实体中?
【问题讨论】:
-
我的理解是它可以让你将特性扩展到设计师之外。您会讨厌调整元属性只是让您的下一个设计师更新将它们全部清除。
-
单一责任主体?
标签: c# .net data-annotations