這裏是我希望有域:許多一對多映射與額外的列連接表
public class Person
{
public int Id { get; set; }
public IList<AcquiredCertificate> AcquiredCertificates { get; set; }
}
public class AcquiredCertificate
{
public Person Acquirer { get; set; }
public Certificate Certificate { get; set; }
public DateTime DateAcquired;
}
public class Certificate
{
public int Id { get; set; }
}
這是架構,我有:
CREATE TABLE People (
PersonId INT PRIMARY KEY
);
CREATE TABLE Certificates (
CertificateId INT PRIMARY KEY
);
CREATE TABLE CertificatesAcquiredByPeople (
PersonId INT,
CertificatedId INT,
DateAcquired DATETIME
);
這是一個人爲的模式和領域,但它與我正在處理的東西幾乎相同。我現在通過編寫第三個域實體來表示CertificatesAcquiredByPeople表,但這對我來說真的很奇怪。
我如何使用NHibernate映射這個?我相信在hbm文件中的組件標籤應該做我想要的,但我不能完全弄明白。
我的域名是否因爲我的證書類中有DateAcquired屬性而失控?日期真的只是一個擁有證書的人的關注點。
[編輯]
我已經改變了的域模型現在以反映需要一個新的實體。現在對於映射我需要3(對於每個實體)映射,還是可以用2(對於Person和Certificate)來完成映射?
謝謝!我現在已經把這個問題改寫爲更具體的映射。 – 2009-01-23 07:03:29