具有持久用户连接的游戏服务器中的NHibernate和工作单元模式

时间:2014-05-13 12:47:59

标签: c# nhibernate unit-of-work tcpserver

NHibernate与工作单元模式最适合HTTP解决方案,但我的服务器具有永久连接用户,并且将所有数据保存在内存中是有效的。

使用会话分离的对象,我无法使用延迟加载,许多NHibernate功能也希望我使用工作单元模式。

NHibernate是否提供了使用会话分离对象的任何好的解决方案?

合并在这里不够好,因为它是相同的冗余数据加载(甚至来自缓存)。或者我应该使用其他解决方案代替NHibernate这种服务器?任何好的ORM?

1 个答案:

答案 0 :(得分:0)

您可以将已分离的对象附加到会话, 见http://rmfusion.com/open_source/nhibernate/nhibernate_net_object_persistence.htm

这里说

  

通过将对象重新连接到新的永久管理器(ISession)。然后,在事务结束时,对象状态将再次与数据库同步。

还有其他orm这样的实体框架,但是依赖于体系结构的过程,一般来说,对于游戏,你应该从数据库加载,在缓存中使用,并在一些事件中更新数据库。 不是一个好主意保持联系,并试图一直同步。

此外,如果延迟加载似乎不适合您,我建议您使用,查看数据库,查看架构以及数据库中的第一项内容而不是模型。 (考虑性能)也许你可以规范化 - 非规范化表