如何使用 nhibernate 更新对象流利的休眠?

发布于 2024-11-25 13:49:06 字数 656 浏览 3 评论 0原文

我通过 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

想你的星星会说话 2024-12-02 13:49:06

将 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");

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文