代码之家  ›  专栏  ›  技术社区  ›  Dani

三层显影混合氨气

  •  1
  • Dani  · 技术社区  · 15 年前

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

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

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

    使用nh有什么好处吗?因为wcf不支持nh延迟加载(至少看起来不像这样),而且-如果我使用静态会话对象-我必须使服务器单实例单并发-否则当同时有多个调用时,nh内部的事情会变得混乱。如果我为每个调用打开一个会话对象(nh)并在调用结束时关闭它-我会释放nhibarante一级缓存…

    所以-问题是-我实施NH是错误的吗?或者它不被认为在我的项目中是有效的吗?

    1 回复  |  直到 14 年前
        1
  •  3
  •   Daniel Auger    15 年前

    您可能想查看 uNhAddIns WCF project . 它使用每个调用的会话,因为这是使用WCF的推荐方法。

    您的说法是正确的,即通过wcf没有延迟加载。您需要将对象图填充到您需要的级别,然后将其发送给它。如果您的服务层在行为上不是面向对象的,那么nhibernate可能会被过度杀伤力。如果没有更多的背景,这是一个艰难的决定。