gpt4 book ai didi

c# - Fluent NHibernate 自动删除数据

转载 作者:行者123 更新时间:2023-11-29 11:39:14 34 4
gpt4 key购买 nike

我在 ASP.NET MVC4 应用程序中将 PostgreSQL 和 Fluent NHibernate 与代码优先实体和映射一起使用。

当我运行应用程序时,它会自动从数据库中删除每条记录。

这是我的 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))

您似乎每次在构建 session 工厂时都在导出架构。现在我不是 100% 确定(我从来没有使用代码优先来生成表,只映射到我事先创建的现有数据库),但我打赌导出会覆盖你已经拥有的(删除和重新创建或其他) .

Here有人在使用 Fluent NHibernate 导出模式时遇到 SQLite 文件被覆盖的类似问题,所以我想说你必须小心何时以及如何(重新)创建数据库:)

关于c# - Fluent NHibernate 自动删除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15179360/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com