NHibernate seeding

本文关键字:seeding NHibernate | 更新日期: 2023-09-27 18:00:34

为了成功启动,我的应用程序依赖于数据库中需要存在的一些初始值。在实体框架中,我可以使用fluent API(fluent sql)创建迁移脚本,以便在应用程序启动时为数据库初始种子。

NHibernate也可能这样吗?可能使用FluentHibernate?

NHibernate seeding

您可以通过手动创建实体并从数据库中写入/删除实体来实现这一点。

您还可以创建这样做的sql脚本,并通过执行以下操作手动运行它们:

using (ISession session = sessionFactory.OpenSession())
{
    using (FileStream strm = File.OpenRead("Seed.sql"))
    {
        using (var reader = new StreamReader(strm))
        {
            string sqlDelete = reader.ReadToEnd();
            try
            {
                IQuery query = session.CreateSQLQuery(sqlDelete);
                query.ExecuteUpdate();
            }
            catch (Exception ex)
            {
                log.Fatal(ex.ToString());
            }
        }
    }
}