如何使用Hibernate和Fluent.NHibernate映射对这些类进行建模?
我正在使用ASP.NET MVC与NHibernate和Fluent.NHibernate映射 我想知道如何在Fluent上映射类,以及如何在MySQL上创建数据库表:如何使用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
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);
}