这里是我希望有域:许多一对多映射与额外的列连接表
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