gpt4 book ai didi

运行时的 NHibernate 只读实体

转载 作者:行者123 更新时间:2023-12-03 11:27:00 25 4
gpt4 key购买 nike

我想知道是否有办法使实体的实例在运行时不可变。我知道我可以有只读类型,但我想在运行时只读类型的实例。原因是,我想通过修改属性像轻量级实体一样使用 NH 域对象,但不希望这些更改在执行 Session.Flush () 或类似操作时持续存在。始终存在 Session.Evict(),但这不会阻止不知情的开发人员在“只读”实体上使用 Session.Save ()。

最佳答案

在运行时吧?我仍然对您的确切要求感到困惑,但我过去做过这样的事情:

foreach (var order in orders)
{
_nhSession.SetReadOnly(order, true); //prevent database updates
}

我前段时间这样做是因为当我查询订单列表时,实体上的某些属性本应为空,但并未设置为空。因此,当 NHibernate 进行刷新时,它试图更新我的所有订单,并将数据库中为 null 的几个字段设置为它们的默认 C# 值,例如数据库中设置为 NULL 的 Integer 字段将在 C# 中更改为 0 .

关于运行时的 NHibernate 只读实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1610035/

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