如何从FluentNHibernate生成hbm.xml文件

时间:2010-07-08 14:20:15

标签: nhibernate fluent-nhibernate nhibernate-mapping hbmxml

我正在尝试遵循此tutorial,但不是使用我的映射生成预期的hbm.xml文件,而是为我的实体生成简单的.cs类,例如:

public class ProductMap : ClassMap<Product>

但我已经在代码中定义了这些。我正在使用.hbm.xml,我现在可以在标准的NHibernate中使用它。

这就是我设置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();
    }

1 个答案:

答案 0 :(得分:9)

请参阅:Fluent_Configuration,页面的最后一部分。

显示此代码

.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");
})