首页 文章

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

提问于
浏览
1

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

我是nhibernate的新手 .

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

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

编译并运行我的项目后,日志记录表已从数据库中删除 .

此致,塞巴斯蒂安

1 回答

  • 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代码 .

相关问题