gpt4 book ai didi

NHibernate 子对象更新

转载 作者:行者123 更新时间:2023-12-02 05:15:44 24 4
gpt4 key购买 nike

我有一个名为“category”的对象,表格如下所示。

CATEGORY
-------------------------------------------------
ID int
ParentCatalogID int
ParentCategoryID int << This is the ID of this table
Position int
Title nvarchar(128)
Description nvarchar(1024)
LastUpdated datetime
DateCreated datetime
IsActive bit

插入、更新、删除等操作一切正常...映射很好。

该表中的数据被呈现为“嵌套”的 html 列表(因此是自引用)。这一切都呈现得很漂亮。

Position 更新(上移 || 下移)时,更新后的列表会反射(reflect)更改,并且相关列表项会移动其在列表中的位置。

问题是当 ParentCatalogID 更改时(向左移动 || 向右移动成为上述列表条目的子项)。传递到列表呈现方法的数据不会反射(reflect)更改,直到通过按 F5 刷新页面,单击刷新(重新加载页面)。

这会让您基本了解如何:

foreach (nc_Category category in root.nc_Categorys)
{
HtmlControl listItem = BuildListItemFromCategory(category);
if (category.nc_Categorys.Count > 0)
{
listItem.Controls.Add(BuildListFromCategorys(category.nc_Categorys));
}
mainList.Controls.Add(listItem);
}

一切正常。问题是在行中 >> foreach (nc_Category category in root.nc_Categorys) root.nc_Categorys(当前对象的子对象)没有反射(reflect)所做的更改直到页面刷新。我可以在调试中看到这一点。所以 NHibernate 在延迟加载时不会获取更新。

更改已提交、刷新并在数据库中可见。 NHibernate 不检索它们。

我已经在对象上尝试了 Refresh() 方法,但这不起作用。需要刷新的是对象的子对象。

我已尝试清除 session 和许多其他操作,但均无济于事。这仅在更改 ParentCategoryID 时发生。当 Position 改变时,它们会立即显示。

这看起来很相似但不确定:http://jira.nhibernate.org/browse/NH-1604

我是 response.redirecting 到同一页面(yuk)。它工作正常,但它不应该需要它。非常感谢您的回复。

最佳答案

这是否与在您的应用程序的不同点使用的不同 session 有关,我知道 java hibernate 选项有一个概念,即对后端 servlet 和 jsp 前端内容使用相同的休眠 session 。

关于NHibernate 子对象更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/367119/

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