在一个项目中首先使用流利的NHibernate模型和数据库

本文关键字:NHibernate 数据库 模型 一个 项目 | 更新日期: 2023-09-27 17:53:11

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

我是新手。

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

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

在我编译并运行我的项目后,日志表从数据库中删除了。

问候,塞巴斯蒂安。

在一个项目中首先使用流利的NHibernate模型和数据库

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

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();
    }
}

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