NHibernate seeding
本文关键字:seeding NHibernate | 更新日期: 2023-09-27 18:00:34
为了成功启动,我的应用程序依赖于数据库中需要存在的一些初始值。在实体框架中,我可以使用fluent API(fluent sql)创建迁移脚本,以便在应用程序启动时为数据库初始种子。
NHibernate也可能这样吗?可能使用FluentHibernate?
您可以通过手动创建实体并从数据库中写入/删除实体来实现这一点。
您还可以创建这样做的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());
}
}
}
}