如何使用Hibernate和Fluent.NHibernate映射对这些类进行建模?

如何使用Hibernate和Fluent.NHibernate映射对这些类进行建模?,nhibernate,oop,fluent-nhibernate,Nhibernate,Oop,Fluent Nhibernate,我正在使用ASP.NET MVC与NHibernate和Fluent.NHibernate映射 我想知道如何在Fluent上映射类,以及如何在MySQL上创建数据库表: public class AgenteDeViagem { public virtual int Id { get; set; } public virtual string Email { get; set; } public virtual AgentePessoa AgentePessoa { ge

我正在使用ASP.NET MVC与NHibernate和Fluent.NHibernate映射

我想知道如何在Fluent上映射类,以及如何在MySQL上创建数据库表:

public class AgenteDeViagem {
    public virtual int Id { get; set; }
    public virtual string Email { get; set; }
    public virtual AgentePessoa AgentePessoa { get; set; }
}

    public interface AgentePessoa {
}

public class AgenteDeViagemPJ:AgentePessoa {
    public virtual int Id { get; set; }
    public virtual AgenteDeViagem AgenteDeViagem { get; set; }
    public virtual string Razao { get; set; }
}

    public class AgenteDeViagemPF:AgentePessoa {
    public virtual int Id { get; set; }
    public virtual AgenteDeViagem AgenteDeViagem { get; set; }
    public virtual string Nome { get; set; }
}

多谢各位

在我看来,你已经成功了一半。您已经在使用
virtual
并设置了关系,因此使用自动映射策略,您只需构建:

私有静态ISessionFactory InitializeNHibernate()
{
var cfg=fluntly.Configure()
.Database(MySQLConfiguration.Standard.ConnectionString(c=>
c、 数据库(“代理”).Server(“本地主机”)
.用户名(“用户”).密码(“密码”))
.Mappings(m=>m.FluentMappings.AddFromAssemblyOf())
.ExposeConfiguration(配置=>
{
//注释以禁用架构生成
BuildDatabaseSchema(配置);
});
返回cfg.BuildSessionFactory;
}
私有静态void BuildDatabaseSchema(配置)
{
var schemaExport=新schemaExport(配置);
schemaExport.SetOutputFile(“mysql_script.sql”);
schemaExport.Create(false,true);
}

谢谢,但我没有使用自动定位。
private static ISessionFactory InitializeNHibernate()
{
    var cfg = Fluently.Configure()
        .Database(MySQLConfiguration.Standard.ConnectionString(c =>
            c.Database("agente").Server("localhost")
            .Username("user").Password("password"))) 
        .Mappings(m => m.FluentMappings.AddFromAssemblyOf<AgenteDeViagem>())
        .ExposeConfiguration(configuration =>
                                 {
                                     // Comment to disable schema generation
                                     BuildDatabaseSchema(configuration);
                                 });

    return cfg.BuildSessionFactory;
}

private static void BuildDatabaseSchema(Configuration configuration)
{
    var schemaExport = new SchemaExport(configuration);
    schemaExport.SetOutputFile("mysql_script.sql");
    schemaExport.Create(false, true);
}