Nếu điều này xảy ra, bạn chắc chắn đã bỏ lỡ việc gán cả hai mặt của mối quan hệ. Nếu điều này đúng:
var parent = ...;
var child = ...;
parent.Children.Add(child);
child.Parent = parent;
Tất cả sẽ hoạt động. Bởi vì điều được hỗ trợ nhiều nhất ở đây là mã của bạn giống như:
var parent = ...;
var child = ...;
parent.Children.Add(child);
// child.Parent = parent; // this is missing
và điều đó sẽ không chèn trẻ em. Tại sao?
Bởi vì chúng tôi đã sử dụng .Inverse()
lập bản đồ. Đây là một thiết lập rất mạnh mẽ nhưng mong manh. Nó cho phép NHibernate thực hiện một số tối ưu hóa quan trọng, nhưng điều đó yêu cầu - PARENT phải được đặt ở con .
Kiểm tra bài viết hay này
Inverse =“true” ví dụ và giải thích bởi mykong