2010-12-14 36 views
6

Tôi là người mới tương đối với EF và đã tạo một mô hình đơn giản (xem bên dưới) bằng EF4. alt textKhung thực thể - Chèn vào nhiều bảng bằng cách sử dụng khóa ngoài

Tôi đang gặp sự cố khi chèn bản ghi mới vào thực thể UserRecord và sau đó thêm thực thể UserDetail sử dụng UserRecordId mới tạo làm khóa chính. Mã được hiển thị bên dưới được sử dụng để hoạt động khi cơ sở dữ liệu của tôi có mối quan hệ một-nhiều nhưng khi tôi thay đổi mối quan hệ một-một, tôi nhận được lỗi được đánh dấu trong hình bên dưới. alt text

Tôi tin rằng nó không hoạt động vì hiện tại không có thuộc tính UserDetails nào được liên kết với UserRecord vì nó bây giờ là mối quan hệ một-một. Câu hỏi của tôi là làm cách nào để chèn mới UserRecord và các thực thể UserDetail tương ứng với mối quan hệ một-một?

Bất kỳ trợ giúp nào về vấn đề này được đánh giá cao như đã tìm kiếm trên web và thử nhiều thứ khác nhau mà không thành công.

Cheers

Cragly

Trả lời

15

đối tượng UserDetail của bạn nên có một tài sản liên kết lại để đối tượng UserRecord. (Có thể gọi là User? Nếu tôi đọc phần điều hướng bên dưới chính xác.) Nếu bạn đặt thuộc tính đó thành đối tượng UserRecord mới, không được cam kết, nó sẽ tự động điền vào khóa khi nó cam kết cả hai đối tượng.

UserRecord userRecord = new UserRecord(); 
// whatever 

UserDetail userDetail = new UserDetail(); 
userDetail.User = userRecord; // This will auto-fill the FK during commit. 
// whatever 

// Add both userRecord and userDetail to the context and commit. 
+1

Tuyệt vời !! Cảm ơn rất nhiều công trình rực rỡ. Có vẻ như tôi đã cố gắng làm điều đó một cách sai lầm và tìm cách thêm UserDetails vào UserRecord thay vì theo cách khác. Bạn đã tiết kiệm cho tôi một số rụng tóc mà tôi có thể tiết kiệm cho đến khi tôi nhấn bức tường gạch EF tiếp theo của tôi! – Cragly

+0

Yea. Tôi đã thử nhiều cách khác này trong hệ thống của mình, bao gồm cả một nỗ lực với cam kết hai giai đoạn. Đây là điều duy nhất làm việc cho tôi, và nó đặc biệt thanh lịch và trực quan để khởi động. – jdmichal

Các vấn đề liên quan