sách gpt4 ai đã đi

Đối tượng tham chiếu đến một thể hiện tạm thời chưa được lưu. Lưu thể hiện tạm thời trước khi xóa nó

In lại 作者:行者123 更新时间:2023-11-30 12:15:50 27 4
mua khóa gpt4 Nike

我有一个自连接员工实体类,其中包含与其自身相关的 id、name 和 ref 列。我想创建它的新实例并将其保存到数据库。

首先我创建了一个 Employee 类的实例并将其命名为 manager。然后我用这些值从 Employee 表中获取了一条记录:Id = 1, Name = "A", RefId = null并将这些值设置为管理器对象。之后我又创建了一个 Employee 类的实例
并像这样设置它的属性值:emp.Name = "B", emp.Ref = 经理。最后我通过使用 base.Add(resource) 方法坚持了下来。当时 Nhibernate 引发了以下错误:“对象引用未保存的 transient 实例,在刷新前保存 transient 实例”。

这是映射文件内容:








class>

请帮我解决这个错误。谢谢

1 Câu trả lời

假设实体 1 是数据库中的现有记录,实体 2 是您尝试创建的引用了实体 1 的新记录。

Hibernate 告诉您您正在保存的新实体(实体 2)引用了实体 1(来自数据库的实体),并且实体 1 有未保存的更改,必须先保存这些更改才能保存实体 2。最简单的做法是先保存实体 1,然后保存实体 2。但是,我认为真正的问题是如何获取 Entity1 的实例。

你说你创建了一个员工实例,然后将其命名为经理,然后从员工表中获取一条记录。如果您尝试更新表中的现有记录,为什么不先获取实体,然后再对其进行编辑?你为什么要实例化一个对象?我不确定的另一件事是对象之间的关系是否是双向的。也就是说,实体 1 具有实体 2 的 FK,并且实体 2 具有实体 1 的 FK。如果是这种情况,您需要确保将“Ref”属性分配两次。 Entityy1.Ref = Entity2 并且 Entity2.Ref = Entity1。

关于c# - 对象引用未保存的 transient 实例 在刷新之前保存 transient 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6596289/

27 4 0
Bài viết được đề xuất: c# - LINQ to Entities 从有序分组中查找最高记录
Bài viết được đề xuất: javascript - jquery inArray 意外行为
Bài viết được đề xuất: javascript - Handsontable 显示完整日期而不是 dateFormat
Bài viết được đề xuất: iOS : Determine code based on console log
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com