【问题标题】:Can I not load a given mapped property (nhibernate)?我可以不加载给定的映射属性(nhibernate)吗?
【发布时间】:2009-07-29 20:31:28
【问题描述】:

我在我的项目中使用 WCF,我需要通过它传输一些实体。

问题是其中一些内部有列表,包含大量项目等等,考虑到它的大小,我无法通过 WCF 传递它。

我怎样才能通过代码不从数据库中加载给定的属性,而是加载所有其他属性?

【问题讨论】:

  • 您确定大小是您无法传输列表的原因吗?我见过其他人在使用 nHibernate 时遇到问题,因为它使用 IList<T> 接口来处理列表。

标签: wcf nhibernate limit


【解决方案1】:

默认情况下,NH 列表是延迟加载的 - 因此除非您另外指定,否则不会加载该列表。

但是,该属性将是一个 IProxy.. 不能序列化的东西。如果您愿意,您可以在该特定属性上设置 [XmlIgnore] 或 [NotSerializable](不确定它是如何通过 wcf 发送的)。

话虽如此 - 确实更喜欢使用 DTO 而不是通过网络发送您的实体。请参阅this 了解更多关于为什么不应该发送实体的信息。

【讨论】:

  • 我本来打算放弃的……但你知道吗?我要对付他们的恶作剧!即使它杀了我!
【解决方案2】:

实际上,由于西罗克,我已经忍受了自己。 我的一个朋友帮我找到了这个:

http://www.junasoftware.com/blog/nhibernate-setresulttransformer-and-dto.aspx

【讨论】:

    猜你喜欢
    • 2012-10-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    相关资源
    最近更新 更多