型号:
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; }
}
的DbContext:
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操作中使用我的模型,这样做是否正确?
答案 0 :(得分:3)
IMHO,
直到您想要在包装器中编写一些自定义逻辑,这不是一个好主意。我认为你正在使用你的模型(或者说我会说DTO对象)用于通信目的。
如果您添加的包装器超出了您的需要,也会将其映射回您的DTO。 (AutoMapper可能会有所帮助)
所以,除非你有非常具体的理由这样做,否则为我创建包装是没有意义的。其中一个场景是在WPF或Silverlight中编写应用程序,您需要一个更改感知模型(即模型实现INotifyPropertyChanged接口)
此外,如果您需要扩展模型的行为,请在继承之前考虑扩展方法。