2011-07-08 31 views
10

Khi tôi cố gắng để ánh xạ một cột để một kiểu dữ liệu char trong lớp mô hình của tôi, tôi nhận được một lỗi:Thuộc tính nguyên thủy hợp lệ trong Mã khung thực thể đầu tiên là gì?

The property '[ColumnName]' is not a declared property on type '[ClassName]'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property.

các loại nguyên thủy có giá trị cho EF Mã đầu tiên là gì?

Trả lời

16

Điều này thật thú vị nhưng bạn thực sự không thể ánh xạ char thuộc tính. Tôi chỉ kiểm tra nó và nếu bạn muốn có char(1) trong cơ sở dữ liệu bạn phải sử dụng string tài sản với bản đồ sau:

modelBuilder.Entity<MyEntity>() 
      .Property(p => p.MyProperty) 
      .HasMaxLength(1) 
      .IsFixedLength() 
      .IsUnicode(false); 

Nó không chỉ là vấn đề của Bộ luật đầu tiên. Đó là toàn bộ giới hạn của EF bởi vì nhà thiết kế EDMX cũng không hiển thị loại char. Tôi cho rằng các loại được phép sẽ giống như được mô tả trong CSDL reference đối với EDMX vì mã đầu tiên chỉ là trình bao bọc xung quanh cùng một cơ sở hạ tầng bản đồ.

+0

Hehe "Các loại nguyên thủy hợp lệ cho mã EF đầu tiên là gì?" – X181

+0

Gợi ý: Lỗi cũng xảy ra nếu bạn có thuộc tính có trình thiết lập riêng. Trong trường hợp của tôi, tài sản đã ở trong một lớp cơ sở. – X181

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