NHibernate 更新导致选择行的计算列

问题描述 投票:0回答:2

我有一个要更新的用户类。在我的数据库中有一个 User 表,其中有两列:FirstName 和 Lastname,还有一个名为 DisplayName 的计算列将两者连接在一起,中间有一个空格。 DisplayName 的 NHibernate 映射是

<property name="DisplayName" type="string" generated="always"/>

当我更新用户对象并提交事务时,NHibernate 仅在 DisplayName 属性上运行一个额外的选择语句,我假设保持对象和数据库行同步。我不需要它,因为该对象随后会超出范围。

我可以做些什么来告诉 NHibernate 此时不需要获取更新的 DisplayName 吗?

问候, F.

nhibernate nhibernate-mapping
2个回答
2
投票

generated="always"
的意思就是:“这是我每次修改这一行时数据库生成的值;请帮我刷新”。

NH 没有像“只有在特定列更改时才刷新”这样的概念。

我的意见是你应该在你的域模型而不是数据库中生成那个值。


0
投票

generated="always"
替换为
insert="false" update="false"
。它将禁用对此列的插入和更新,并且不会创建额外的选择语句来刷新值。

© www.soinside.com 2019 - 2024. All rights reserved.