gpt4 book ai didi

Nhibernate 探查器显示警告 "Use explicit Save or Update in session"

转载 作者:行者123 更新时间:2023-12-03 23:30:13 24 4
gpt4 key购买 nike

我在保存第一次创建的 session 实体时遇到问题...

每个实体都有一个步骤列表,每个步骤都有一个值列表。 (我在映射上使用逆函数)。实体和步骤也引用了数据库中已有的主值。所以有一种新旧对象的混合。

当我执行第一个保存时,我执行了 Session.Save(entity) 并且整个树都保存在数据库中。

问题在于探查器会警告类似的消息

无法确定具有指定标识符 ede6a5ee-b4bd-4f67-9c64-11ef85b7d6ff 的 StepValueEntity 是 transient 的还是分离的;查询数据库。在 session 中使用显式 Save() 或 Update() 来防止这种情况。

因为 nhibernate 在开始真正插入东西之前做了很多更新。

我做错了什么?

我已经尝试过类似迭代每个步骤和值的方法并明确保存它,但同样的事情正在发生。

编辑:

这就是我为身份列做映射的方式,也许这不会给 nhibernate 提供线索来了解什么是新的和已经持久存在的实体,我应该以另一种方式来做。

Id(x => x.Id).Column("GUID_PIPELINE_STEP_PARAMETER").GeneratedBy.Assigned();

问候

最佳答案

也许你忘记了交易,看看: http://nhprof.com/Learn/Alerts/DoNotUseImplicitTransactions

using (var session = sessionFactory.OpenSesion())
using (var tx = session.BeginTransaction())
{
// perform your insert here
tx.Commit();
}

关于Nhibernate 探查器显示警告 "Use explicit Save or Update in session",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9755121/

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