我正在创建一个日历应用程序。我有一个 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)
   {//...}
}

10-08 11:35