27. März 2007

NHibernate 1.2 HowTo

Zur Codegenerierung aus Datenbanktabellen wird MyGeneration empfohlen. Dort muss zunächst ein NHibernate Template heruntergeladen werden.

Im VisualStudio-Projekt muss folgender Config-Eintrag in die app.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section
name="hibernate-configuration"
type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"
/>
</configSections>

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">
NHibernate.Connection.DriverConnectionProvider
</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
<property name="default_schema">dbo</property>
<property name="connection.connection_string">Server=myserver;Initial Catalog=mydb;Integrated Security=True</property>
<property name="show_sql">true</property>
<mapping assembly="MyAssembly" />
</session-factory>
</hibernate-configuration>
</configuration>

Wichtig ist, dass die generierten *.obm.xml-Files in VisualStudio als eingebette Ressource über die Properties definiert sind. Die Mapping-Files müssen nicht explizit im Config-File angegeben werden. Durch den Eintrag mapping assembly werden alle .obm.xml-Files in dieser Assembly verwendet.

Beispiel für das Neuanlegen eines Datensatzes:

Configuration cfg = new Configuration();
ISession session = cfg.Configure().BuildSessionFactory().OpenSession();
ITransaction transaction = session.BeginTransaction();

ProfilProjekt pro = new ProfilProjekt();
pro.Kunde = "Kunde";
pro.LfdNr = 1;
session.Save(pro);
transaction.Commit();

session.Close();

Keine Kommentare: