0

模型:

public class Student
{
    public int StudentID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public Gender Gender { get; set; }
    public string Address { get; set; }
}

数据库上下文:

public class MyContext : DbContext
{

   public MyContext():base(connectionstring)
   {
   }

   public DbSet<Student> Student { get; set; }

}

包装类:

public class StudentWrapper
{

    public int StudentID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public Gender Gender { get; set; }
    public string Address { get; set; }

}

执行:

public void AddStudent()
{

   using(MyContext ctx = new MyContext())
   {
      StudentWrapper newStudent = new StudentWrapper(); // If ever I wanted this `working`

      ctx.Student.Add(newStudent);
   }

}

我想为我的模型类制作一个包装器,而不是直接在 CRUD 操作中使用我的模型,这样做是否正确?

4

1 回答 1

3

恕我直言,

除非您想在包装器中编写一些自定义逻辑,否则这不是一个好主意。我认为您正在使用您的模型(或者我会说 DTO 对象)进行通信。

如果您添加包装器,则还需要将其映射回您的 DTO。(AutoMapper 可能会有所帮助)

因此,除非您有非常具体的理由这样做,否则为我创建包装器是没有意义的。其中一种情况是在 WPF 或 Silverlight 中编写一个应用程序,您需要一个更改感知模型(即实现 INotifyPropertyChanged 接口的模型)

此外,如果您需要扩展模型的行为,请在继承之前考虑扩展方法。

于 2013-04-02T07:49:19.550 回答