【发布时间】:2014-04-28 22:33:15
【问题描述】:
为了成功启动,我的应用程序依赖于数据库中需要存在的一些初始值。在 Entity Framework 中,我可以使用 fluent API (fluent sql) 创建迁移脚本,以在应用程序启动时为我的数据库初始种子。
NHibernate 也可以这样吗?可能使用 FluentNHibernate?
【问题讨论】:
标签: c# entity-framework nhibernate fluent-nhibernate
为了成功启动,我的应用程序依赖于数据库中需要存在的一些初始值。在 Entity Framework 中,我可以使用 fluent API (fluent sql) 创建迁移脚本,以在应用程序启动时为我的数据库初始种子。
NHibernate 也可以这样吗?可能使用 FluentNHibernate?
【问题讨论】:
标签: c# entity-framework nhibernate fluent-nhibernate
您可以通过手动创建实体并从数据库中写入/删除它们来做到这一点。
您还可以创建执行此操作的 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());
}
}
}
}
【讨论】: