2012-04-10 18 views
7

Tôi nhận được thông báo lỗi cột nullable này trong Entity Framework 4.1 - khi cột là không thực sự nullable:Entity Framework Non-nullable được ánh xạ tới một tài sản thực thể nullable

Non-nullable column MyView.RunningTotal in table TransactionListView 
is mapped to a nullable entity property. 

Nhưng bạn có thể nhìn thấy từ các ảnh chụp màn hình bên dưới là cột không có giá trị rỗng và thuộc tính thực thể cũng không thể rỗng. Vậy tại sao lỗi này xảy ra?

enter image description here

+0

Không (Không) có nghĩa là giá trị mặc định của vô hiệu nhưng không phải là sai? Nếu bạn chỉ định True, nó có hoạt động không? Tôi không có phòng thu trực quan nào gần đây để tự mình kiểm tra ... – ILya

+1

Thay đổi (Không) thành Công việc sai, nhưng thay đổi đó sẽ bị mất mỗi lần sửa đổi edmx (sử dụng tạo mô hình từ cơ sở dữ liệu) –

+0

Bạn đã thử xóa đối tượng từ nhà thiết kế và thêm lại nó? Tôi đã giải quyết các vấn đề tương tự theo cách này. – ctorx

Trả lời

12

Giải pháp thẳng về phía trước là chỉ định thủ công Tham số không thể gửi thành True.

+0

Ok, vì vậy tôi đã làm điều này để bắt đầu và tôi vẫn gặp lỗi này trong Visual Studio 2015. Đã xảy ra sự cố. –

+0

Thật kì lạ. Trong cửa sổ thuộc tính, nó cho biết nullable "True", nhưng tôi vừa mở tập tin .edmx trong một trình soạn thảo văn bản và nó được đặt thành false. Cái quái gì vậy. –

0

2017 Cập nhật (Visual Studio 2017)

Nếu giải pháp chuyển tiếp thẳng được chấp nhận được đề cập bởi lLya không giúp bạn, thì điều này có thể. Bạn có thể nhận thấy rằng khi bạn lưu một sơ đồ, nó sẽ hoạt động, như thay đổi các thuộc tính của lớp theo các thay đổi sơ đồ của bạn. Người ta sẽ nghĩ rằng chính máy phát điện sẽ nhận thức được những thay đổi này, đúng không ?! Bạn vẫn có thể gặp lỗi này.

Điều gì đã khắc phục cho tôi là tạo lại cơ sở dữ liệu (nhấp chuột phải vào biểu đồ -> Tạo lại cơ sở dữ liệu từ mô hình).