尝试使用继承时抛出NHibernate.DuplicateMappingException

时间:2019-06-07 09:04:06

标签: c# nhibernate fluent-nhibernate nhibernate-mapping fluent-nhibernate-mapping

当尝试使用Fluent NHibernate将子类(患者)映射到派生(人)时,抛出NHibernate.DuplicateMappingException

我为继承创建了以下类结构。

Class Diagram for patient and person.

此外,这是我的两个表的数据库设计:

Database for patient and person.

请在下面找到我的患者和人员类别地图:

public class PatientClassMap : SubclassMap<Patient>
{
    public PatientClassMap()
    {
        Table("Patient");
        Schema("dbo");
        KeyColumn("Id");

        Map(x => x.NhsNumber).Column("NhsNumber").Not.Nullable();
    }
}
public class PersonClassMap : ClassMap<Person>
{

    public PersonClassMap()
    {
        Table("Person");
        Schema("dbo");

        Id(x => x.Id).GeneratedBy.Identity();

        Map(x => x.FirstName);
        Map(x => x.MiddleName);
        Map(x => x.LastName);
    }
}

用于创建会话的配置如下:

private static ISessionFactory CreateSessionFactory()
{
    return Fluently.Configure()
        .Database(MsSqlConfiguration.MsSql2012.ConnectionString(ConnectionString))
        .Mappings(m => m.FluentMappings
            .AddFromAssemblyOf<PatientClassMap>()
            .AddFromAssemblyOf<PersonClassMap>()
        )
        .BuildSessionFactory();
}

每当我尝试运行WCF服务以检索患者时,都会有以下例外情况返回我:

InnerException: NHibernate.DuplicateMappingException
                      HResult=-2146233088
                      Message=Duplicate class/entity mapping PatientDomain.Patient
                      Source=NHibernate
                      Name=PatientDomain.Patient

试图解决此问题,我遇到了障碍,其他人是否知道是什么原因造成的,因为配置没有两次添加相同的类映射。

0 个答案:

没有答案