Me enamoré de NHibernate y la fluida interfaz. Este último permite mapeos muy agradables con soporte de refactorización (no más necesidad de archivos xml).Combinar fluidez y mapeo XML para NHibnernate
Pero nadie es perfecto, por lo que me falta el mapeo de muchos a ninguno con fluidez. ¿Alguien sabe si ya está allí? Si es así, una simple línea de código sería agradable.
Pero para seguir con el encabezado de la pregunta, ¿hay alguna manera de combinar la correspondencia de NHibernate con fluidez y normal.
Actualmente utilizo las siguientes líneas para mi configuración de prueba CON fluidez, y el segundo bloque de código para mi prueba SIN fluidez (con asignaciones de XML). ¿Cómo puedo saber fluidez a utilizar con fluidez si está disponible y XML de otro modo ...
var cfg = new Configuration();
cfg.AddProperties(MsSqlConfiguration.MsSql2005.ConnectionString.Is(_testConnectionstring).ToProperties());
cfg.AddMappingsFromAssembly(typeof(CatMap).Assembly);
new SchemaExport(cfg).Create(true, true);
var persistenceModel = new PersistenceModel();
persistenceModel.addMappingsFromAssembly(typeof(CatMap).Assembly);
IDictionary<string, string> properties = MsSqlConfiguration.MsSql2005.UseOuterJoin().ShowSql().ConnectionString.Is(_testConnectionstring).ToProperties();
properties.Add("command_timeout", "340");
session = new SessionSource(properties, persistenceModel).CreateSession();
Sin Fluido ...
config = new Configuration();
IDictionary props = new Hashtable();
props["connection.provider"] = "NHibernate.Connection.DriverConnectionProvider";
props["dialect"] = "NHibernate.Dialect.MsSql2005Dialect";
props["connection.driver_class"] = "NHibernate.Driver.SqlClientDriver";
props["connection.connection_string"] = "Server=localhost;initial catalog=Debug;Integrated Security=SSPI";
props["show_sql"] = "true";
foreach (DictionaryEntry de in props)
{
config.SetProperty(de.Key.ToString(), de.Value.ToString());
}
config.AddAssembly(typeof(CatMap).Assembly);
SchemaExport se = new SchemaExport(config);
se.Create(true, true);
factory = config.BuildSessionFactory();
session = factory.OpenSession();
Eso es todo ... Chris
PS: Realmente como este sitio, la GUI es perfecta, y la calidad de todos los artículos es increíble. Creo que va a ser enorme :-) tiene que registrarse ...