Tôi đang cố gắng lưu (chèn) một thực thể Chánh với danh sách Các thực thể con. Cả hai entites sử dụng một Guid là khóa chính. Các khóa không có giá trị rỗng và không có mối quan hệ khóa nào được thiết lập trong db.Chèn phụ huynh và trẻ em với NHibernate cùng một lúc
Lưu không hoạt động, ngoại lệ được yêu cầu - tôi cố gắng lưu một giá trị rỗng vào khóa ngoại của Phụ huynh trong bảng Con.
Tôi đã mong đợi nhibernate để tạo ra một chìa khóa cho phụ huynh và để cho các đối tượng con của nó biết về nó. Đây có phải là hạn chế của NHibernate hoặc sử dụng Guids làm khóa chính không?
Điều này answer đề xuất bạn phải đặt chế độ người dùng gốc, đây thực sự là cách duy nhất?
Dưới đây là ánh xạ của tôi để tham khảo: lập bản đồ
phụ huynh:
HasMany(x => x.Children).KeyColumn("ParentKey").Inverse().Cascade.All();
lập bản đồ trẻ em:
References(x => x.Parent).Not.Nullable().Column("ParentKey");
Chắc chắn tôi không mong đợi tham chiếu ở đó vào thời gian chạy trước khi lưu (có lẽ câu hỏi của tôi là gây hiểu lầm, chỉnh sửa nó) - Điều tôi mong đợi là dành cho Nhibernate để biết cả Phụ huynh và Trẻ em đều mới và biết làm thế nào để tồn tại chúng với các phím thích hợp .... quá nhiều để yêu cầu? – Dan
@Tôi đã cập nhật câu trả lời của mình để hữu ích hơn. – docmanhattan
chỉ để giải thích thêm về ánh xạ và hạn chế kiểm tra liên kết này http://wiki.fluentnhibernate.org/Fluent_mapping#Access_strategies – cpoDesign