正确处理数据验证的方法

时间:2010-08-17 04:52:32

标签: c# methodology

我的应用程序中有一个员工类。该类的构造函数采用员工ID。我尝试检查员工ID是否有效的方式是这样的

Employee emp = new Employee("E11234");
if (emp.IsValid())
{
    // do whatever is required
}
else
{
    // show an error message
}

在构造函数中,我尝试访问数据库,如果我可以检索记录,我填写私有成员的值,否则如果不存在记录,我将isValid属性设置为false。

这是实现我想要的正确方法还是有更好的方法?

1 个答案:

答案 0 :(得分:2)

您应该将数据库访问与实体类(Employee)分开。分离的一个选择是使用Repository-pattern来加载和保存员工。存储库负责访问您的数据库,员工无需担心它的来源或存储位置。

有很多关于使用存储库和here in Stackoverflow we have a good question关于此主题的好教程。使用存储库时,您的代码看起来更像是这样:

Employee emp = EmployeeRepository.GetById("E11234");
if (emp.IsValid())
{ 
   do whatever is required 
}
else {     
  // show an error message
}

关于验证,您的员工类也不应该使用该数据库中的数据库。您可以使用Validate方法创建一个EmployeeValidator类,然后执行所有必需的验证。

我最好的建议是,您应该尝试让您的实体远离您的基础架构。