NHibernate播种

时间:2014-04-28 09:57:34

标签: c# entity-framework nhibernate fluent-nhibernate

要成功启动,我的应用程序需要一些需要在数据库中存在的初始值。在Entity Framework中,我可以使用流畅的API(流畅的sql)创建迁移脚本,以便在应用程序启动时初始化我的数据库。

NHibernate也可以吗?可能还有FluentNHibernate?

1 个答案:

答案 0 :(得分:0)

您可以通过手动创建实体并从数据库中写入/删除它们来完成此操作。

您还可以创建执行此操作的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());
            }
        }
    }
}