Fluent NHibernate会自动删除数据
本文关键字:删除 数据 NHibernate Fluent | 更新日期: 2023-09-27 18:01:58
我在ASP中使用PostgreSQL和Fluent NHibernate的代码优先实体和映射。. NET MVC4应用程序。
当我运行应用程序时,它会自动删除数据库中的所有记录。
这是我的NHibernateHelper类
public class NHibernateHelper
{
private static ISessionFactory _sessionFactory;
private static ISessionFactory SessionFactory
{
get
{
if (_sessionFactory == null)
InitializeSessionFactory();
return _sessionFactory;
}
}
private static void InitializeSessionFactory()
{
_sessionFactory = Fluently.Configure()
.Database(PostgreSQLConfiguration.Standard
.ConnectionString(
@"Server=localhost;Port=5432;Database=TestDB;User=postgres;Password=postgre;")
.ShowSql()
)
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<ProductCategory>())
.ExposeConfiguration(cfg => new SchemaExport(cfg)
.Create(true, true))
.BuildSessionFactory();
}
public static ISession OpenSession()
{
return SessionFactory.OpenSession();
}
是否存在配置错误?
我想说问题在这里:
.ExposeConfiguration(cfg => new SchemaExport(cfg).Create(true,true))
似乎每次构建会话工厂时都在导出模式。现在我不是100%确定(我从来没有使用代码优先生成表,只映射到我事先创建的现有数据库),但我敢打赌,导出覆盖你已经有(drop &
这里有人有一个类似的问题,SQLite文件被覆盖时,导出模式与流利的NHibernate,所以我想说你必须小心何时以及如何(重新)创建数据库:)