如何使用Fluent配置数据库表?

时间:2013-10-02 02:20:56

标签: fluent-nhibernate nhibernate-mapping

我试图生成数据库的表但是没有生成表。 我正在做这样的映射:

using Domain.Entidades;
using FluentNHibernate.Cfg;
using FluentNHibernate.Cfg.Db;
using NHibernate.Tool.hbm2ddl;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Domain.Infraestrutura
{
    public class Conexao
    {
        public static void CriarTabelasBanco()
        {

            FluentConfiguration configuration = Fluently.Configure()
                .Database(MsSqlConfiguration.MsSql2008.ConnectionString(x => x.FromConnectionStringWithKey("psConnection")).ShowSql())
                .ExposeConfiguration(cfg => new SchemaExport(cfg).Create(true, true))
                .Mappings(x => x.FluentMappings.AddFromAssemblyOf<Pessoa>());

            configuration.BuildSessionFactory();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

首先添加映射,然后调用ExposeConfiguration,否则在调用SchemaExport时配置不知道映射。

除此之外,SchemaExport以静默方式失败,因此如果有任何错误,它将不会抛出异常,而是可以查看SchemaExport实例的异常列表,因此您必须构建电话略有不同。