“创建 SessionFactory 时使用了无效或不完整的配置” NHibernate

"An invalid or incomplete configuration was used while creating a SessionFactory” NHibernate

我在创建 SessionFactory 时遇到此错误。这是代码,如果有人可以检查一下。

    class NHibernateHelper {

    private static ISessionFactory _sessionFactory;

    private static ISessionFactory SessionFactory {
        get {
            if (_sessionFactory == null) {
                InitializeSessionFactory();
            }
            return _sessionFactory;
        }
    }

    private static void InitializeSessionFactory() {
        _sessionFactory = Fluently.Configure().
            Database(MsSqlConfiguration.MsSql2008.ConnectionString
            ("Server=tcp:z4m56fgh.database.windows.net,1433;Database=db;User ID=user;Password=xxxxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;").
            ShowSql()).
            Mappings(m => m.FluentMappings.AddFromAssemblyOf<House>()).
            ExposeConfiguration(cfg => new SchemaExport(cfg).Create(false, true)).
            BuildSessionFactory();
    }

    public static ISession OpenSession() {
        return SessionFactory.OpenSession();
    }
}

映射:

   public class HouseMap : ClassMap<House> {

    public HouseMap() {
        Id(x => x.Id);
        References(x => x.Owner).Cascade.All();
        References(x => x.Rooms).Cascade.All();
        References(x => x.Consumptions).Cascade.All();
    }
}

    public class ConsumptionMap : ClassMap<Consumption> {

    public ConsumptionMap() {
        Id(x => x.Id);
        Map(x => x.Type);
        Map(x => x.AvgDay);
        Map(x => x.AvgMonth);
        Map(x => x.AvgYear);
    }
}

   public class RoomMap : ClassMap<Room> {

    public RoomMap() {
        Id(x => x.Id);
        Map(x => x.Name);
        Map(x => x.Number);
        Component<TemperatureData>(x => x.TemperatureData,
            t => {
                t.Map(x => x.TemperatureCurrent, "Current");
                t.Map(x => x.TemperatureSet, "Set");
            });
        Component<RoomFeatures>(x => x.Features,
            f => {
                f.Map(x => x.Shutters, "ShuttersUp");
                f.Map(x => x.Lights, "LightsOn");
            });
    }
}

这正是 class NHibernateHelper 与另一个模型一起工作,所以它一定是我的映射有问题。此外,如果我从 HouseMap 中排除所有内容,它仍然不起作用,即对参考文献进行评论。

在没有 类 的情况下,很难意识到问题的根源是什么,尽管可以猜测 Consumptions 属性.如果它是一个列表(正如其名称所示),则应使用 HasMany 而不是 References.

进行映射

此外,也许您可​​以使用 InnerException 附加堆栈跟踪。这可以给我们一个线索。