【发布时间】:2011-04-02 04:44:34
【问题描述】:
存储在具有数据约束的关系数据库中的数据(例如最大字符串属性长度)。客户端使用数据访问库(DAL)以ORM方式管理数据(存储库+数据域类)
您个人会在哪里实施约束? 例如:
数据域类:
class Person
{
private string _name;
public string Name
{
get { return _name; }
set { _name = StringHelper.Truncate(value, 50) }
}
...
}
或者可能是存储库:
PersonRepository {
public void CreatePerson(Person p) {
p.Name = StringHelper.Truncate(p.Name, 50);
...
DataContext.Insert(..);
}
}
或者您可能应该使用分配给数据域类属性的属性,这些属性将通过反射在存储库方法中处理,以自动截断字符串字段。
class Person {
[StringConstraint(MaxLength = 50)]
public string Name { get; set; }
}
PersonRepository::CreatePerson(p) {
EntityHelper.ApplyConstraints(p);
...
}
或者可能是别的什么?
提前感谢您!
【问题讨论】:
标签: .net orm data-access-layer