2013-12-18 18 views
6

Vấn đề của nó Khi tạo Edmx trong .net để tạo Edmx của DataBase chỉ những Bảng và khung nhìn được thêm vào có khóa chính.
Sự cố này được giải quyết dễ dàng nhưng chỉ cần tạo cột chính trong Bảng hoặc Chế độ xem nhưng tôi không có lý do thực sự tại sao lại cần thiết ??
Có ai vui lòng giải thích lý do đằng sau nó không?
Edmx cần Primary_Key?

+2

Nó được sử dụng để theo dõi một đối tượng khi bạn thực hiện cập nhật (hoặc xóa cho vấn đề đó), đó là cách EF _identifies_ đối tượng. –

+0

okkk @BenjaminGruenbaum Tôi hiểu nó Thats một câu hỏi ngớ ngẩn nhưng tôi không bao giờ biết lý do –

+0

Đó không phải là một câu hỏi ngớ ngẩn ở tất cả, tôi muốn upvote nó nếu tôi đã không vượt quá giới hạn bỏ phiếu hàng ngày. Tôi đang chờ đợi một số câu trả lời thú vị từ những người biết kiến ​​trúc tốt hơn tôi (tôi chỉ đọc nó trong một bài đăng blog một thời gian trước đây). –

Trả lời

2

Khuôn khổ thực thể cần khóa chính để xác định đúng một phần dữ liệu là duy nhất trong một tập dữ liệu cụ thể. Nó đi xuống đến cách nó tìm kiếm các thực thể nội bộ và mang lại cho bạn hiệu suất tốt nhất có thể.

Ví dụ: một trong các tính năng của Khung thực thể là Theo dõi thay đổi, giữ một tập hợp các thực thể Đã thêm, Đã xóa, Đã sửa đổi và Không thay đổi trong một loạt bộ sưu tập được xác định là Dictionary<EntityKey, EntityEntry>. Để có thể xử lý hiệu quả các bộ sưu tập đó, nó cần một chìa khóa để thực hiện các hoạt động CRUD cần thiết cho các bộ sưu tập đó một cách kịp thời, và kết quả là, nó cần khóa đó.

Cập nhật:

Ngoài ra còn có một bộ sưu tập cho các đối tượng keyless là tốt, nhưng nó được định nghĩa như Dictionary<object, EntityEntry> trong đó có hiệu suất khủng khiếp để tra cứu là chìa khóa sẽ cần phải được đúc (hoặc không có hộp bọc nếu phím là một loại giá trị) để có thể sử dụng được.

+0

cảm ơn nó thực sự hữu ích –

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