Boa tarde,
Eu tenho uma dúvida em relação ao uso do NHibernate (C#): é possível ao adicionar novas Entidades + Mapeamentos e, ao chamar o Método de Geração dos Schemas sem perder os dados anteriormente adicionados nas Tabelas!?
Abaixo, não sei se torna-se necessário, seguem meus Fontes envolvidos:
hibernate.cfg.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="dialect">NHibernate.Dialect.MySQL5Dialect</property>
<property name="connection.connection_string">
Server=localhost;Database=DB_NHIBERNATE;Uid=root;Pwd=123456;
</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="cache.use_second_level_cache">true</property>
<property name="cache.provider_class">NHibernate.Caches.SysCache.SysCacheProvider, NHibernate.Caches.SysCache</property>
<property name="cache.use_query_cache">true</property>
</session-factory>
</hibernate-configuration>
Abaixo, Fonte da Classe NHibernateHelper:
using NHibernate;
using NHibernate.Cfg;
using NHibernate.Tool.hbm2ddl;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace prjNHibernate_Caelum.Infra {
public class NHibernateHelper {
public static ISessionFactory sessionFactory = CriaSessionFactory();
public static ISessionFactory CriaSessionFactory() {
Configuration cfg = RecuperaConfiguracao();
return cfg.BuildSessionFactory();
}
public static Configuration RecuperaConfiguracao() {
Configuration cfg = new Configuration();
cfg.Configure();
cfg.AddAssembly(Assembly.GetExecutingAssembly());
return cfg;
}
public static void GeraSchema() {
Configuration cfg = RecuperaConfiguracao();
new SchemaExport(cfg).Create(true, true);
}
public static ISession AbreSession() {
return sessionFactory.OpenSession();
}
}
}
Desde já obrigado, abraços.