2010-07-08 24 views
9

estoy tratando de seguir esta tutorial, pero en lugar de generar los archivos hbm.xml esperados con mis asignaciones de clase que genera sencilla .cs para mis entidades como por ejemplo:Cómo generar el archivo de hbm.xml FluentNHibernate

public class ProductMap : ClassMap<Product> 

Pero ya los definí yo mismo en el código. Estoy buscando el .hbm.xml que puedo usar en NHibernate estándar en este momento.

Esto es cómo me juego hasta la SessionFactory:

private static ISessionFactory CreateSessionFactory() 
    { 
     String schemaExportPath = Path.Combine(System.Environment.CurrentDirectory, "Mappings"); 

     if (!Directory.Exists(schemaExportPath)) 
      Directory.CreateDirectory(schemaExportPath); 


     return Fluently.Configure() 
      .Database(MsSqlConfiguration.MsSql2008 
       .ConnectionString(c =>c.FromConnectionStringWithKey("connectionString")) 
       .Cache(c => c.UseQueryCache() 
        .ProviderClass<HashtableCacheProvider>()).ShowSql()) 
      .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Program>().ExportTo(schemaExportPath)) 
      .ExposeConfiguration(c => new SchemaExport(c).SetOutputFile(@"c:\temp\test.sql").Create(false, true)) 
      .BuildSessionFactory(); 
    } 

Respuesta

9

Ver: Fluent_Configuration, la última sección de la página.

Se muestra el código

.Mappings(m => 
{ 
    m.FluentMappings 
    .AddFromAssemblyOf<YourEntity>() 
    .ExportTo(@"C:\your\export\path"); 

    m.AutoMappings 
    .Add(AutoMap.AssemblyOf<YourEntity>(type => type.Namspace.EndsWith("Entities")));) 
    .ExportTo(@"C:\your\export\path"); 
}) 
+0

No, no funcionó para mí. Solo sigo recibiendo los archivos .cs. No los de hbm.xml. ¿Qué es exactamente lo que necesita ir en el método Agregar? Lo dejé fuera por ahora. – XIII

+0

Si mira el ejemplo anterior ... lo muestra en el método de agregar AutoMap.AssemblyOf (type => type.Namspace.EndsWith ("Entities"))); –

+0

Ver los cambios en el código en la respuesta. –

Cuestiones relacionadas