NHibernate ClassMappings = 0 - PullRequest
       0

NHibernate ClassMappings = 0

0 голосов
/ 20 ноября 2010

Я пытаюсь использовать NHibernate / FluentNHibernate для создания таблицы в моей базе данных.Я, кажется, понял это по большей части, но когда я запускаю тест, таблица не создается.В объекте «Конфигурация» я вижу, что ClassMappings - это большой жирный ноль, даже при том, что у меня есть пользователь FluentNHibernate для настройки их из сборки.Я немного понимаю это, но где-то отсутствует какое-то соединение ... Вот фрагменты кода, может, кто-то может увидеть, что я забыл?

Вот мой класс по обработке данных.

public static FluentConfiguration GetFluentConfiguration()
    {
        string hibernateCfgFile = @"C:\Users\kenn\Documents\Visual Studio 2008\Projects\NHibernateTestTwo\Infrastructure\hibernate.cfg.xml";
        return Fluently.Configure(new Configuration().Configure(@hibernateCfgFile))
            .Mappings(cfg => cfg.FluentMappings.AddFromAssembly(typeof(AddressMap).Assembly));
    }

Вот тестовый класс.

[Test, Explicit]
    public void SetupDatabase()
    {
        FluentConfiguration conf = DataConfig.GetFluentConfiguration();
        conf.ExposeConfiguration(BuildSchema).BuildSessionFactory();
    }

    private static void BuildSchema(Configuration conf)
    {
        new SchemaExport(conf).SetOutputFile("drop.sql").Drop(false, true);
        new SchemaExport(conf).SetOutputFile("create.sql").Create(false, true);
    }

Вот сопоставления

 public AddressMap()
    {

        Table("Address");
        DynamicUpdate();
        Id(a => a.Id).GeneratedBy.GuidComb();
        Map(a => a.AddressOne).Not.Nullable().Length(100);
        Map(a => a.AddressTwo).Length(100);
        Map(a => a.City).Not.Nullable().Length(100);
        Map(a => a.state).Not.Nullable().Length(100);
        Map(a => a.zip).Not.Nullable().Length(50);
        Map(a => a.Primary).Not.Nullable();

    }

Файл hibernate.cfg.xml

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
    <property name="connection.driver_class">
        NHibernate.Driver.SqlClientDriver
    </property>
    <property name="connection.connection_string">
        Data Source=MYPC;Initial Catalog=NHibernateSample;Integrated Security=True;
    </property>
    <property name="show_sql">true</property>
    <property name="dialect">
        NHibernate.Dialect.MsSql2005Dialect
    </property>
    <property name="adonet.batch_size">100</property>
    <!--<property name="proxyfactory.factory_class">
        NHibernate.ByteCode.LinFu.ProxyFactoryFactory,
        NHibernate.ByteCode.LinFu
    </property>-->
    <property name="proxyfactory.factory_class">
        NHibernate.ByteCode.Castle.ProxyFactoryFactory, 
        NHibernate.ByteCode.Castle
    </property>
</session-factory>

Я просто не уверен, чтотам отсутствует ... Это явно говорит с БД, потому что, если я изменю имя базы данных на что-то, что не существует, оно выдает исключение, я застрял - я обошел это вокруг и просто убежал 'Я еще не понял, поэтому любая помощь будет принята с благодарностью.

Спасибо!

1 Ответ

1 голос
/ 21 ноября 2010

Смотрите мой комментарий ... Не забудьте сделать ваши классы карт общедоступными, иначе FluentNHibernate их не увидит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...