首先是流畅的NHibernate模型,在一个项目中首先是数据库

时间:2014-03-25 23:00:06

标签: c# nhibernate fluent-nhibernate

是否可以配置流畅的nhibernate来基于某些模型类的流畅映射创建db模型,同时在一个项目中手动(sql)创建db表和映射到它们的模型类?

我是nhibernate的新手。

我开始创建模型类并使用流畅映射来创建数据库模式。 然后我想添加一些假设db是手动创建的日志框架。

我使用NHibernateMappingGenerator生成模型类和映射类。

编译并运行我的项目后,日志记录表已从db中删除。

此致 塞巴斯蒂安

1 个答案:

答案 0 :(得分:0)

此代码将在实例化时为您创建表:

public class NHibernateSessionFactory
{
    private static ISessionFactory _sessionFactory;

    private static ISessionFactory SessionFactory
    {
        get
        {
            if (_sessionFactory == null)
            {
                InitializeNHibernateSessionFactory();
            }

            return _sessionFactory;
        }
    }

    private static void InitializeNHibernateSessionFactory()
    {
        _sessionFactory =
            Fluently.Configure()
                .Database(MySQLConfiguration.Standard
                .ConnectionString(ConfigurationManager.ConnectionStrings["MySQL"].ConnectionString))
                .ShowSql())
                .Mappings(m => m.FluentMappings
                .AddFromAssemblyOf<OneOfMyMappedClassesMap>()))
                .ExposeConfiguration(cfg => new SchemaExport(cfg).Create(true, true))
                .BuildSessionFactory();
    }
}

负责根据映射构建数据库的行是ExposeConfiguration。如果您在控制台应用程序中使用此代码,ShowSql选项将打印出所有生成的SQL代码。