我在NHibernate中对单个属性执行标准更新。但是在提交事务时,sql update似乎设置了我在表上映射的所有字段,即使它们没有更改。当然这在Nhibernate中不是正常的行为吗?难道我做错了什么?感谢

using (var session = sessionFactory.OpenSession())
           {
               using (var transaction = session.BeginTransaction())
               {
                   var singleMeeting = session.Load<Meeting>(10193);
                   singleMeeting.Subject = "This is a test 2";

                   transaction.Commit();
               }
           }
有帮助吗?

解决方案

这是正常行为。您可以尝试将 dynamic-update =&quot; true&quot; 添加到类定义中以覆盖此行为。

其他提示

好。是的,这是NHibernate的正常行为。您可以使用属性的生成属性来更改行为。有关 Ayende的博客的详细信息。

为什么这是默认值,因为动态不会让您的查询计划被缓存。通常,您不介意通过应用程序服务器和数据库之间的高速网络连接发送更多字节。除非您保存长字符串,否则此设置非常合适。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top