【问题标题】:mixing NHibernate with 3 tier developing将 NHibernate 与 3 层开发相结合
【发布时间】:2009-10-30 16:26:33
【问题描述】:

我有一个 3 层应用: 第一层:SQL 数据库。 第二层:应用服务器(dotnet) 第三层:智能 wpf 客户端。

我使用 NHibarnate (fluent) 作为应用服务器层的数据源 (应用服务器 - 第 2 层使用 NH 与 DB 对话)

应用层使用 WCF 与客户端对话。

我是否从使用 NH 中受益 - 因为 WCF 不支持 NH 延迟加载(至少它看起来不像这样)并且 - 如果我使用静态会话对象 - 我必须使服务器单实例单一并发 - 否则当多个电话同时出现时,NH 内部的事情会变得一团糟。如果我为每个通话打开一个会话对象 (NH) 并在通话结束时将其关闭 - 我会丢失 NHibarante 一级缓存...

所以 - 问题是 - 我实施 NH 错了吗?还是认为在我的项目中效率不高?

【问题讨论】:

    标签: wcf nhibernate fluent-nhibernate n-tier-architecture


    【解决方案1】:

    您可能想查看uNhAddIns WCF project。它使用 session-per-call,因为这是 WCF 的推荐方式。

    你说的没错,通过 WCF 没有延迟加载。您需要将对象图填写到您需要的级别,然后将其发送出去。如果您的服务层在行为上不是面向对象的,NHibernate 可能会过大。这是一个艰难的决定,没有更多的背景。

    【讨论】:

    • 我认为在 wcf 4.0 (dot net 4.0) 中解决了这个问题,但我没有时间检查它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 2013-06-08
    • 1970-01-01
    • 2017-08-29
    • 2015-04-21
    • 2011-12-20
    • 2013-01-07
    相关资源
    最近更新 更多