c# - Fluent NHibernate ISessionFactory 用于读取、写入和更新数据库
问题描述
对不起!我通过问简单的问题搞砸了。我有一个非常简单的 Store 对象,我将存储数据库、读取、更新等。它第一次工作正常,但如果我有当前会话工厂,读取也很好。现在,如果我重新打开我的示例应用程序以读取数据库,那么我就会看到问题所在。对于阅读,它使用相同的 InitializeSessionFactory(),因此我的数据库变为空。如何修改 InitializeSessionFactory() 使其独立地用于写入、更新和删除单个记录?
公共类 NHibernateHelper { 私有静态 ISessionFactory _sessionFactory;
private static ISessionFactory SessionFactory
{
get
{
if (_sessionFactory == null)
InitializeSessionFactory();
return _sessionFactory;
}
}
private static void InitializeSessionFactory()
{
_sessionFactory = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql7.ConnectionString(@"Server=(local);initial catalog=MyDatabase; user=my_user_id;password=my_password;").ShowSql())
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Store>())
.ExposeConfiguration(cfg => new SchemaExport(cfg).Create(true, true))
.BuildSessionFactory();
}
public static ISession OpenSession()
{
return SessionFactory.OpenSession();
}
}
解决方案
我不是数据库专家,也不是 Fluent Nhibernate 的老手。在尝试和玩耍之后,我找到了这样的解决方案。所以我在滥用它。似乎它正在工作(虽然不确定是否有任何回归问题)
//.ExposeConfiguration(cfg => new SchemaExport(cfg).Create(true, true))
.ExposeConfiguration(cfg => new SchemaUpdate(cfg).Execute(false, true))
推荐阅读
- node.js - 如何链接 Promise 和多个异步请求?
- neo4j - 使用 GraphAware NLP 运行“ga.nlp.annotate”时出现“java.lang.OutOfMemoryError: Java heap space”
- c++ - 使用 C++ 对 2D 图像进行 DFT - 不好的结果
- python - Python Pulp - 避免解决方案中的重复条目
- java - 此方法必须返回 double 类型的结果
- php - SQLSTATE[HY000] [2002] php_network_getaddresses
- html - CSS 引导程序。固定和流体 div,流体内部内容似乎偏移
- gganimate - 将 gganimate 动画保存为 mp4 文件
- eclipse - 如何使用 e(fx)clipse 将 JavaFX-Project-Wizzard 添加到 Eclipse 4.9?
- swift - NSTableView 列之间的选项卡并移动到下一行