/*
mcs Main.cs -r:CS.dll -r:NHibernate.dll -r:Castle.DynamicProxy.dll
-r:HashCodeProvider.dll -r:Iesi.Collections.dll -r:log4net.dll /resource:KeySet.hbm.xml
/resource:Keyword.hbm.xml
*/
using System;
using System.Collections;
using CS;
using NHibernate.Cfg;
using NHibernate;
public class MainClass {
public static void Main(string[] args)
{
//ETAPA 1 - cria o objeto de configuração do NHibernate que é responsável e tem o conhecimento
//sobre todos os mapeamentos que existem entre os objetos do nosso sistema e a Base de Dados:
Configuration cfg = new Configuration();
cfg.AddAssembly("CS");
cfg.AddXmlFile("KeySet.hbm.xml");
cfg.AddXmlFile("Keyword.hbm.xml");
//ETAPA 2 - O objeto de ISession representa uma conexão com a sua Base de Dados e o ITransaction
//representa uma transação controlada também pelo NHibernate:
ISessionFactory factory = cfg.BuildSessionFactory();
ISession session = factory.OpenSession();
ITransaction transaction = session.BeginTransaction();
Keyword keyword1 = new Keyword();
keyword1.Id = 1;
keyword1.Name = "palavra1";
KeySet keyset1 = new KeySet();
keyset1.Id = 2;
keyset1.Name = "gramatica1";
keyset1.Keys.Add( keyword1, keyword1 );
try {
session.Save( keyword1 );
session.Flush();
session.Save( keyset1 );
session.Flush();
transaction.Commit();
}
catch ( Exception e ) {
if ( transaction != null ) transaction.Rollback();
throw e;
}
finally {
session.Close();
}
}
}