我需要建模此場景的幫助。幫助在asp.net中定義域模型
A病人可以有很多醫療人員
醫生可以有很多病人。
患者也是用戶。 (會員用戶)
Medic也是用戶。 (會員用戶)
他們是完全不同的,因爲(例如)患者將有許多體格檢查,而軍醫不會。
這應該是類嗎?將這樣的班級綁定到特定的MembershipUser的標準方法是什麼?
我很難理解這一點。
我需要建模此場景的幫助。幫助在asp.net中定義域模型
A病人可以有很多醫療人員
醫生可以有很多病人。
患者也是用戶。 (會員用戶)
Medic也是用戶。 (會員用戶)
他們是完全不同的,因爲(例如)患者將有許多體格檢查,而軍醫不會。
這應該是類嗎?將這樣的班級綁定到特定的MembershipUser的標準方法是什麼?
我很難理解這一點。
你可以擁有的東西像這樣在域層:
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成員資格。您的基礎結構可以負責將域用戶對象映射到ASP.NET MembershipUser:
public class AspNetMembershipProvider {
public MembershipUser BasedOn(User user) {
return new MembershipUser(user.UserName, user.Email, ...)
}
}
從您的解釋中,我只需要一個抽象基類,也許稱爲用戶,它定義了患者和Medic分享的重複屬性和方法。
然後,我會有一個公共屬性公開的屬性,該基類是MembershipUser對象。
然後讓Patient和Medic類從基類User類繼承並實現它們各自的獨特功能。
底座用戶類也可以實現一個公共屬性,即有限制噸至用戶對象
事情是這樣的where子句T的名單:
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>
{
}
這似乎是合理的。但是當涉及到實際存儲在數據庫中。患者如何與MembershipUser相關?病人有一個用戶名屬性?..林不知道如何獲取成員資格屬性填充 – ignaciofuentes
是最簡單的方法將只存儲用戶名作爲用戶對象的屬性。那麼如果你需要實例化一個MembershipUser對象,你可以通過username屬性來實現。或者從構造函數接受一個用戶名字符串,並在那裏實例化你的MembershipUser對象。 –