gpt4 book ai didi

nhibernate - 我可以有选择地关闭带有 NHibernate 的延迟加载吗?

转载 作者:行者123 更新时间:2023-12-04 11:44:26 25 4
gpt4 key购买 nike

使用 LINQ to Sql,您可以为给定的 fetch 指定您不希望加载特定的子元素(急切或懒惰)。这在 NHibernate 中可行吗?有时我只想要根对象和/或对象图的一部分,我希望能够指定它,而不必编写 DTO 并进行映射只是为了绕过 NHibernate 感觉的事实如果我尝试序列化我的对象,则被迫加载所有内容。

谢谢!

最佳答案

对,但是…

您在此处拥有的灵活性级别可能取决于您的 NHibernate 版本以及您构建查询的方式。例如,LINQ 查询(这里是版本控制可能会产生影响的地方)不会为您提供与 ICriteria 相同的灵活性。或 HQL 查询。

使用标准API,您可以调用.SetFetchMode() ,传入该查询的属性和所需的模式。

NHibernate 还允许您创建投影,因此您可以在没有映射的情况下实例化未映射类型或 DTO 的对象。当然,投影只有一种方式;如果它没有被映射,它就不能被持久化。

关于nhibernate - 我可以有选择地关闭带有 NHibernate 的延迟加载吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4340684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com