6

Tôi đang cố gắng sử dụng Databinding với WPF và Entity Framework.Bảng/chế độ xem không có khóa chính được xác định

Sau khi thêm nguồn dữ liệu vào dự án của mình, tôi đã lưu dự án của mình để xem liệu mọi thứ có ổn cho đến khi tôi đã thực hiện hay không.

nhưng tôi có một 11 cảnh báo tin nhắn/thông tin nêu:

Bảng/xem 'MyDataBase.TableName' không có một khóa chính xác định. Khóa đã được suy ra và định nghĩa đã được tạo dưới dạng bảng/chế độ xem chỉ đọc.

Tôi đã 14 Bàn nơi 4 bảng có khóa chính của mình và các bảng khác được gọi mỗi phím nước ngoài sử dụng khác

vấn đề này là gì tất cả về? Vui lòng giúp

Trả lời

4

Mọi thực thể trong EF phải được nhận dạng duy nhất. EF sử dụng các khóa cơ sở dữ liệu chính để xác định khóa thực thể. Trong khi nó có thể làm việc mà không có chìa khóa chính để mở rộng một số nó là dứt khoát không được khuyến khích bởi vì nó dẫn đến nhiều vấn đề. Vấn đề cốt lõi được đề cập trực tiếp trong lỗi - nếu bảng không có khóa chính, EF đánh dấu nó là chỉ đọc vì nó không chắc chắn rằng nó có thể xác định duy nhất bản ghi được cập nhật.

+0

Tôi có thể khắc phục cảnh báo/thông tin này khi tôi tạo dự án của mình không? hoặc tôi có phải thực hiện bất kỳ phương pháp nghiêm túc nào khác để khắc phục vấn đề này không? –

+0

Nó chỉ là một cảnh báo, trừ khi bạn có thiết lập dự án của bạn để không biên dịch cảnh báo bạn sẽ có thể biên dịch dự án. Tôi thậm chí không chắc chắn nếu cảnh báo từ xác nhận EDMX có thể hủy bỏ một bản dựng. –

+0

Tôi xây dựng ứng dụng của mình ngay bây giờ, tôi chỉ có 11 tin nhắn được hiển thị –

0

Thực ra đây chỉ là cảnh báo nhưng bạn sẽ không bao giờ có thể sử dụng chức năng Save trong trường hợp của tôi khiến EF vô dụng đối với tôi vì DB được thiết kế kém.

0

bạn chỉ phải xóa tệp EDMX khỏi dự án của mình. bây giờ chuyển đến cơ sở dữ liệu của bạn và thêm các khóa chính vào mỗi bảng. Sau đó thêm EDMX mới vào dự án của bạn. nó sẽ hoạt động tốt. và đừng quên xóa thẻ connectionString khỏi tệp cấu hình của bạn trong dự án.

1

Xác định khóa chính trong bảng của bạn và cập nhật Mô hình dữ liệu thực thể. Bạn có thể làm điều đó sau khi bạn mở mô hình EF và nhấp chuột phải và chọn cập nhật. Chọn tùy chọn làm mới từ cửa sổ và xác thực mô hình của bạn.

enter image description here

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