Hi everyone,

I'm having a hard time configuring NHibernate Validator (NHV). For
some reason it doesn't see any of my mapped classes. NHibernate is
fully working, I changed all the mappings from *.nhv.xml to *.hbm.xml
and it works perfectly. However I want to use the NHV because of the
validation properties.

This is my config file:
------------------------------------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <!-- Configuration Sections In This File -->
  <configSections>

    <!-- NHibernate Section -->
    <section
        name="hibernate-configuration"
        type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"
        />

    <section
        name="nhv-configuration"
        type="NHibernate.Validator.Cfg.ConfigurationSectionHandler,
NHibernate.Validator" />

    <!-- Log4Net Section -->
    <section
        name="log4net"
        type="log4net.Config.Log4NetConfigurationSectionHandler,
log4net"
        />

  </configSections>

  <nhv-configuration xmlns='urn:nhv-configuration-1.0'>
    <property name='apply_to_ddl'>true</property>
    <property name='autoregister_listeners'>true</property>
    <property name='default_validator_mode'>UseExternal</property>
    <property
name='message_interpolator_class'>NHibernate.Validator.Interpolator.DefaultMessageInterpolator,
NHibernate.Validator, Version=1.2.0.3001, Culture=neutral,
PublicKeyToken=70154e18752585bd</property>
    <mapping assembly="MBMS.DAL" />
  </nhv-configuration>

  <!-- NHibernate Configuration -->
  <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory name="MBMS.DAL">
      <property name="connection.provider">
        NHibernate.Connection.DriverConnectionProvider
      </property>
      <property name="dialect">
        NHibernate.Dialect.MsSql2005Dialect
      </property>
      <property name="connection.driver_class">
        NHibernate.Driver.SqlClientDriver
      </property>
      <property name="connection.connection_string">
        Data Source=(local)\SQLExpress;Initial Catalog=MBMS;Integrated
Security=True;Pooling=False
      </property>
      <property name="proxyfactory.factory_class">
        NHibernate.ByteCode.Castle.ProxyFactoryFactory,
NHibernate.ByteCode.Castle
      </property>
      <mapping assembly="MBMS.DAL"/>
    </session-factory>
  </hibernate-configuration>

  <!-- Log4Net Configuration -->
  <log4net>

    <!-- Define an output appender (where the logs can go) -->
    <appender name="LogFileAppender"
type="log4net.Appender.FileAppender, log4net">
      <param name="File" value="log.txt" />
      <param name="AppendToFile" value="true" />
      <layout type="log4net.Layout.PatternLayout, log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x]
&lt;%X{auth}&gt; - %m%n" />
      </layout>
    </appender>

    <!-- Note: Priority level can be ALL/DEBUG/INFO/WARN/ERROR/FATAL/
OFF -->
    <!-- Setup the root category, set the default priority level and
add the appender(s) (where the logs will go) -->
    <root>
      <priority value="WARN" />
      <appender-ref ref="LogFileAppender" />
    </root>
  </log4net>

  <appSettings>
    <add key="NUnitTestConfigValue" value="abc" />
  </appSettings>

</configuration>
------------------------------------------------------------------------------------------------------------------------------------------------------------------



And this is the code I use to configure NHV:
------------------------------------------------------------------------------------------------------------------------------------------------------------------
            Configuration cfg = new Configuration();
            cfg.Configure();

            ValidatorEngine engine = new ValidatorEngine();
            engine.Configure();

            // Create session factory from configuration object
            sessionFactory = cfg.BuildSessionFactory();
------------------------------------------------------------------------------------------------------------------------------------------------------------------


Now when I check "cfg.ClassMappings.Count" it is always 0 when I use
the *.nhv.xml mapping files. The *.hmb.xml files work perfectly!



This is one mapping file:
------------------------------------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0"?>
<nhv-mapping xmlns="urn:nhibernate-validator-1.0"
namespace="MBMS.DAL.Types" assembly="MBMS.DAL">

  <class name="Person" table="Persons" lazy="false">

    <!-- Identity mapping -->
    <id name="ID">
      <column name="ID" />
      <generator class="identity" />
    </id>

    <!-- Simple mappings -->
    <property name="FirstName">
      <not-empty/>
      <not-null/>
    </property>
    <property name="MiddleName">
      <not-null/>
    </property>
    <property name="LastName">
      <not-empty/>
      <not-null/>
    </property>
  </class>

</nhv-mapping>
------------------------------------------------------------------------------------------------------------------------------------------------------------------


I have spend 4 hours already on just this issue and I'm running out of
idea's. What I don't understand is this that you have 2 configurations
right? The NHibernate configuration and the NHV configuration. If I
configure NHibernate it searches for *.hbm.xml files while the NHV
searches for *.nhv.xml files? So in that case
"cfg.ClassMappings.Count" would never ever be greater than zero right?
I don't get any errors when I compile and run my code but I also don't
retrieve any Persons in my database (while there are many in it).
Again I do retrieve every person when I change the *.nhv.xml files to
*.hbm.xml. Every XML file is set to "Embedded Resource".

I hope someone can help me out!

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to