假设我的系统中有两种类型的用户:教师和学生.现在,教师和学生数据都存储在用户表中.因此我有一个类User,它对应于表User.
但后来我创建了两个继承自User的类,即Teacher和Student.除了有一些额外的属性和方法,这些类使代码更清晰.(我更了解Teacher对象而不是User对象.在默认的Ctor of Teacher中,我将UserType之类的字段设置为Teacher的默认值)
现在我主要在api/presentation layer/services层使用Teacher/Student对象.但是对于数据访问层,我必须传递一个User对象,因为它是存储在Users表中的对象.所以我需要从Teacher/Student对象中获取User对象.
我想避免编写代码将每个属性从教师复制到用户,并想知道其他人如何做到这一点?
另外,有没有更好的方法来设计这个而不是单独的教师/学生课程?
如果它们来自用户,则无关紧要.您可以设计数据访问权限以接收用户,并且由于学生或教师是用户,因此它可以正常工作.
所以给出了这个函数声明:
public void SaveUser(User user){
//Save a user baby!!!
}
Run Code Online (Sandbox Code Playgroud)
那么这段代码完全有效:
var myStudent = new Student();
var myTeacher = new Teacher();
SaveUser(myStudent);
SaveUser(myTeacher);
Run Code Online (Sandbox Code Playgroud)
或者我错过了什么?