【问题标题】:NHibernate WCF Bidirectional and Lazy loadingNHibernate WCF 双向和延迟加载
【发布时间】:2010-04-15 08:19:25
【问题描述】:

我只是在寻找有关 NHibernate 和 WCF 的方向。

目前,我在人和地址之间建立了多对一的关联。

第一个问题。 我必须急切地加载地址列表,这样它就不会生成延迟加载的代理。有没有办法完全禁用延迟加载?我永远不想看到它生成。

第二个问题。 我的 poco 之间的双向关联正在扼杀我的标准序列化。最好的前进方式是什么。我应该删除

感谢大家的帮助

【问题讨论】:

    标签: wcf nhibernate nhibernate-mapping


    【解决方案1】:

    最好的解决方案是不要在服务中公开你的持久类。

    相反,创建仅包含每个服务调用所需信息的 DTO 类,并公开这些信息。

    您可以使用AutoMapper 来避免从/到 DTO 和持久类的部分映射工作。

    【讨论】:

    • 您对更改持久类有什么建议吗? IE,如果我将 PersonName 属性更改为 CustomerName.. 它会破坏 DTO 内的项目。应该如何管理?
    • 我对NHibernate 还是有点偏心,但是你能用某种ResultsTransformer 来创建DTO 吗?通过循环遍历 IList 的列表来创建 IList 似乎很愚蠢。使用 AutoMapper 和 NHibernate 的示例非常适合:D
    • 第一个问题我没看懂。对于第二个,您可以使用 AliasToBeanResultTransformer 并在 HQL 中进行投影,但它有点脆弱。另一种方法是使用 Linq to Objects 从原始实体中投影出您想要的确切 DTO,无论是使用 AutoMapper 还是手动(抱歉,我没有示例,但应该不难;检查包含的)跨度>
    猜你喜欢
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 2013-12-10
    • 1970-01-01
    相关资源
    最近更新 更多