I have created a small NHibernate app in Visual Studio 2005, using NHibernate 1.2.0B1. I'm using NHibernate.Mapping.Attributes, and the following code throws a MappingException:
Code:
class Program
{
static void Main(string[] args)
{
Configuration cfg = new Configuration()
.AddAssembly("ConsoleApplication2");
cfg.AddInputStream(NHibernate.Mapping.Attributes.HbmSerializer.Default.Serialize(
System.Reflection.Assembly.GetExecutingAssembly()));
ISessionFactory factory = cfg.BuildSessionFactory();
ISession session = factory.OpenSession();
}
}
I am new to NHibernate and am probably missing something obvious.
I have one persistent class, Sale.cs:
Code:
namespace nextgen.domain
{
[NHibernate.Mapping.Attributes.Class(Table="Sale")]
class Sale
{
private int saleId;
[NHibernate.Mapping.Attributes.Id(Column="SaleID")]
[NHibernate.Mapping.Attributes.Generator(Class="Assigned")]
public int SaleId
{
get { return saleId; }
set { saleId = value; }
}
private DateTime saleDate;
[NHibernate.Mapping.Attributes.Property(Column="SaleDate")]
public DateTime SaleDate
{
get { return saleDate; }
set { saleDate = value; }
}
}
}
Here is my App.config:
Code:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<nhibernate>
<add
key="hibernate.connection.provider"
value="NHibernate.Connection.DriverConnectionProvider"
/>
<add
key="hibernate.dialect"
value="NHibernate.Dialect.MsSql2000Dialect"
/>
<add
key="hibernate.connection.driver_class"
value="NHibernate.Driver.SqlClientDriver"
/>
<add
key="hibernate.connection.connection_string"
value="Server=127.0.0.1; Initial Catalog=thedatabase; Integrated Security=SSPI"
/>
<add key="hibernate.connection.isolation" value="ReadCommitted" />
<add key="hibernate.hbm2ddl.auto" value="create" />
<add key="hibernate.show_sql" value="true" />
</nhibernate>
<!-- This section contains the log4net configuration settings -->
<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="false" />
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n" />
</layout>
</appender>
<!-- 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>
<!-- Specify the level for some specific namespaces -->
<!-- Level can be : ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF -->
<logger name="NHibernate">
<level value="INFO" />
</logger>
</log4net>
<!-- other app specific config follows -->
</configuration>
The exact error message:
An unhandled exception of type 'NHibernate.MappingException' occurred in NHibernate.dll
Additional information: Could not compile the mapping document: (unknown)
Thanks in advance for any tips!