Khi tôi lưu một thực thể với khung thực thể, tôi tự nhiên cho rằng nó sẽ chỉ cố gắng lưu thực thể được chỉ định. Tuy nhiên, nó cũng đang cố gắng cứu các thực thể con của thực thể đó. Điều này gây ra tất cả các loại vấn đề về tính toàn vẹn. Làm cách nào để buộc EF chỉ lưu đối tượng tôi muốn lưu và do đó bỏ qua tất cả các đối tượng con?
Nếu tôi đặt các thuộc tính thành null theo cách thủ công, tôi sẽ gặp lỗi "Thao tác không thành công: Không thể thay đổi mối quan hệ vì một hoặc nhiều thuộc tính khóa ngoại là không thể null." Điều này cực kỳ phản tác dụng vì tôi đặt đối tượng con thành null cụ thể nên EF sẽ để nó yên.
Tại sao tôi không muốn lưu / chèn các đối tượng con?
Vì điều này đang được thảo luận qua lại trong các phần bình luận, nên tôi sẽ đưa ra một số lý do giải thích tại sao tôi muốn các đồ vật con của mình được để yên.
Trong ứng dụng mà tôi đang xây dựng, mô hình đối tượng EF không được tải từ cơ sở dữ liệu mà được sử dụng như các đối tượng dữ liệu mà tôi đang điền trong khi phân tích cú pháp một tệp phẳng. Trong trường hợp của các đối tượng con, nhiều trong số này đề cập đến các bảng tra cứu xác định các thuộc tính khác nhau của bảng mẹ. Ví dụ: vị trí địa lý của thực thể chính.
Vì tôi đã tự điền các đối tượng này nên EF giả định đây là các đối tượng mới và cần được chèn cùng với đối tượng mẹ. Tuy nhiên, những định nghĩa này đã tồn tại và tôi không muốn tạo bản sao trong cơ sở dữ liệu. Tôi chỉ sử dụng đối tượng EF để thực hiện tra cứu và điền khóa ngoại vào thực thể bảng chính của mình.
Ngay cả với các đối tượng con là dữ liệu thực, trước tiên tôi cần phải lưu đối tượng chính và lấy khóa chính, nếu không EF dường như chỉ tạo ra một mớ hỗn độn. Hy vọng điều này đưa ra một số lời giải thích.