我正在创建一个日历应用程序。我有一个 Appointment 表和一个 Person 表。这 2 个通过每个表中的 PersonID 字段链接。
我的问题是,我的底层 .Net Appointment 对象是否应该包含 PersonName 的属性,并且我从数据库 View (或连接表的存储过程)填充该对象,或者让 Appointment 类包含 People 类是否更正确?如果答案是后者,从数据库填充约会/人员对象的最佳方法是什么?
最佳答案
假设你没有使用 ORM,你可以看看 DAO 模式:
http://en.wikipedia.org/wiki/Data_access_object
我会创建两个 DTO:
class Person
{
public int id { get; set; }
public String name { get; set; }
}
class Appointment
{
public int id { get; set; }
public Date when { get; set; }
public Person who { get; set; }
}
和一个“完整”的约会类:
class FullAppointment
{
private Person person;
private List<Appointment> appointment;
}
然后是一个 DTO 从数据库中获取数据:
class AppointmentDTO
{
public FullAppointment retrieveFromDb(int personId)
{//...}
}