如何使用 nhibernate 更新对象流利的休眠?
我通过 nhibernate 进行查询以从数据库中获取记录。
var result = session.Query<TableA>().Where(x => x.Id == 10).FirstOrDefault();
result.Where = "hi";
session.Update(result)
session.Commit();
所以我得到一个结果并更新一个属性并尝试更新然后提交它。这会崩溃,因为我有表 B 的 forigen 键(表 A 可以有一个表 B,表 B 有许多表 A),
所以这个引用不能为空。因此,当它尝试进行更新时,它会崩溃。
所以我要做的
var result = session.Query<TableA>().Where(x => x.Id == 10).FirstOrDefault();
result.Where = "hi";
result.TableB = session.Load<TableB>(1);
session.Update(result)
session.Commit();
就是快乐。
如何在不加载 TableB 的情况下进行更新?
I do a query through nhibernate to get a record back from the database.
var result = session.Query<TableA>().Where(x => x.Id == 10).FirstOrDefault();
result.Where = "hi";
session.Update(result)
session.Commit();
So I get a result back and update a property and try to update and then commit it. This will crash because I have forigen key to Table B(Table A can Has one Table B and Table B has many Table A's)
So this reference cannot be null. So when it tries to do an update it crashes.
So I have to do
var result = session.Query<TableA>().Where(x => x.Id == 10).FirstOrDefault();
result.Where = "hi";
result.TableB = session.Load<TableB>(1);
session.Update(result)
session.Commit();
Then it is happy.
How can I do an update without having to load TableB in?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将 TableB 属性映射的 Update 值设置为 false。我不确定如何使用 Fluent NHibernate 执行此操作,但看起来 SetAttribute 方法会为您执行此操作。
类似于: .SetAttribute("update", "false");
Set the Update value of the TableB property mapping to false. I'm not sure how you'd do this using Fluent NHibernate, but it looks like the SetAttribute method will do this for you.
Something along the lines of: .SetAttribute("update", "false");