我需要帮助建模这种情况。
患者可以有很多医务人员
Medic可以有很多患者。
患者也是用户。 (的MembershipUser)
Medic也是用户。 (的MembershipUser)
它们是完全不同的,因为(例如)患者将有许多物理检查,而医生则不会。
这应该是课吗?将类这样的类绑定到特定的MembershipUser的标准方法是什么?
我无法理解这一点。
答案 0 :(得分:0)
根据你的解释,我只需要一个抽象的基类,可能叫做User,它定义了Patient和Medic共享的重复属性和方法。
然后我会在该基类中公开一个公共属性,它是MembershipUser对象。
然后,让Patient和Medic类从基类User类继承并实现各自的独特功能。
基本用户类还可以实现一个公共属性,该属性是一个T的List,它有一个where子句,用于将T限制为User对象
这样的事情:
public abstract class User<T> where T : User<T>
{
public MembershipUser Membership { get; set; }
public List<T> Users { get; set; }
}
public class Patient : User<Medic>
{
}
public class Medic : User<Patient>
{
}
答案 1 :(得分:0)
您可以在域层使用此类内容:
public class Credentials {
private String _userName;
private String _email;
private String _passwordQuestion;
}
public abstract class User {
private Credentials _credentials;
}
public class Patient : User {
private List<Medic> _medics;
private List<PhysicalExam> _exams;
}
public class Medic : User {
private List<Patient> _patients;
}
请注意,域代码不直接引用ASP.NET成员资格。您的基础结构可以负责将域User对象映射到ASP.NET MembershipUser:
public class AspNetMembershipProvider {
public MembershipUser BasedOn(User user) {
return new MembershipUser(user.UserName, user.Email, ...)
}
}