我从未使用 POCOs ,因此我习惯在业务对象类中添加大量逻辑。因此,我相信我缺少一些关于类布局的重要概念,以及这里需要的思考过程。
所以我很欣赏一些能让我的大脑指向正确方向的想法;
假设你有两个班级;公司和员工。你能举一些例子说明你将围绕这些类建立什么类来处理各种行为/验证等等? (像某些类名,以及对其目的的简要描述)
(或者我认为其他任何例子都是有用的。)
答案 0 :(得分:1)
您可以通过为该业务类创建元数据类来放置验证和业务逻辑 像这样
[MetadataType(typeof(EmployeeMetadata))]
public partial class Employee
{
public class EmployeeMetadata
{
[Required(ErrorMessage="Employee Name is Required")]
[StringLength(50, ErrorMessage="Must be under 30 Characters")]
public string Name { get; set; }
}
}
这些类称为“好友类” 请参阅this
答案 1 :(得分:0)
我通常为系统中的任何逻辑代码分组创建一个外观层。例如,假设用户具有管理员凭据,则用户只需要处理公司数据和员工数据。所以在这种情况下我会创建一个AdminFacade类,如下所示:
public class AdminFacade
{
public Company GetCompanyByEmployee( Employee employee )
{
// open a db session / web service call etc.
// run a query to find the company by employe id.
// populate the company object
// close db session
// return the populated customer object
}
}
我通常让我的GUI实例化所有Facade类,这就是GUI处理的全部内容。您还可以在GetCompanyByEmployee方法的开头添加验证,如果让employee.startdate少于一年,则抛出异常。
希望有所帮助。