首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NHibernate在模型中包含引用表的主键

使用NHibernate在模型中包含引用表的主键
EN

Stack Overflow用户
提问于 2021-08-13 06:04:04
回答 1查看 37关注 0票数 1

我们使用NHibernate进行DB操作,而在数据库中,Configuration表中有一个Organisation的引用。这是现有的代码,不能更改。

配置表在整个应用程序中大量使用,因此我们希望将OrganisationId包含在Configuration模型类中,但不包括在表中,因为它已经具有引用对象。这样,当我们只需要OrganisationId时,我们将避免加载整个组织对象。

代码语言:javascript
复制
//Configuration.hbm.xml
<many-to-one name="Organisation"
                 class="Organisation"
                 not-null="false"
         foreign-key="FK_ConfigurationItem_Organisation"
         unique-key="UniqueConfigurationItemName"/>

//Configuration.cs  (Model Class)
public virtual Organisation Organisation { get; set; }

如何修改hbm或模型类以获得organisationId,而不将此字段包括在表中?

我是NHibernate的新手,并且坚持这个要求。

如有任何建议,将不胜感激。谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-02-26 01:21:50

不应该需要手动尝试这种优化,因为NHibernate有多个选项可以自己处理这个问题,而且该方法对于大量使用的对象(又名为object )特别有效。行)。如果您使用带有缓存的会话对象,NHibernate将预先访问缓存(又名)。内存)而不是从数据库加载(第二、第三或.时间)。如果您使用急切加载或连接加载,那么NHibernate将在数据库的第一个sql中包含简单的foreigen键,这是一种比延迟加载更快的方法(只有在他的foreigen键从未被访问过的情况下才会很糟糕)。

这只是一个猜测,我不能百分之百肯定这是我想要做的,但是我不小心把一个列映射了两次,你也可以为这个组织做一次,一次作为一个预测键,一次作为一个简单的列(巫婆类型的组织是是的)。确保“简单列”属性的设置者不是公共的!确保更新外键设置器中的“简单列”。

问候

朱伊·朱卡

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68767494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档