gpt4 book ai didi

c# - 删除和添加相同数据库后未创建 Fluent Nhibernate 映射

转载 作者:太空宇宙 更新时间:2023-11-03 16:10:47 25 4
gpt4 key购买 nike

我正在使用 fluent nhibernate 在运行时使用 3 个 session 创建 3 个数据库。

 ISessionFactory sessionFactory = Fluently.Configure()
.Database(MsSqlConfiguration
.MsSql2008
.ConnectionString(c => c
.Server(databaseServer)
.Database(dataBaseName)
.Username("sa").Password("sa123_MTTS")))
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<NHibernateSessionFactory>())
.ExposeConfiguration(c => c.SetProperty("command_timeout", (System.TimeSpan.FromMinutes(10).TotalSeconds).ToString()))
.ExposeConfiguration(BuildSchema)
.BuildSessionFactory();

private static void BuildSchema(Configuration config)
{
new SchemaUpdate(config).Execute(false, true);
}

例如:

我在这里创建名称为“123”、“234”、“345”的数据库。

然后我删除数据库 123。

删除后我也关闭了 session

sessionfactory.Close(); 

现在我再次添加一个与删除的数据库“123”同名的数据库。

SchemaUpdate(config).Execute() 

被调用。 Nhibernate 创建了数据库,但没有在数据库中创建表,我没有得到任何异常。

我不知道这是怎么回事。

最佳答案

如果您有权访问 SQL Profiler,则在您执行代码时让它运行,看看您是否从 SQL 获得了一些关于 NHibernate 试图执行的代码的消息。

我见过这样的情况,NHibernate 从 SQL 中获取错误并且没有将它报告回客户端。这主要是外键违规或在 SQL 中设置为不可空但使用 NHibernate 映射为可空的列。错误的结果是未报告的 SQL 代码回滚。

SQL Profiler 中的错误应该能让您更好地了解发生了什么。

关于c# - 删除和添加相同数据库后未创建 Fluent Nhibernate 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17563988/

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