2016-02-09 20 views
6

Tôi gặp vấn đề với EF7 RC1. Tôi không thể làm việc với enums trong mô hình của tôi. Tôi có thể tiết kiệm tài sản enum. Giá trị được đúc thành int. Vấn đề của tôi là trong khi đọc dữ liệu tôi nhận được ngoại lệ cast không hợp lệ.EF7 có hỗ trợ enums không?

  1. EF7 có hỗ trợ các thuộc tính enum không?
  2. Tôi có thể định cấu hình nó bằng api thông thạo như thế nào?

Cảm ơn

EDIT:

enum:

public enum LimitMode 
    { 
     Max, 
     Min, 
     MaxAndMin, 
    } 

mẫu:

public class SomeModel 
    { 
    (..) 
    public LimitMode LimitMode {get; set;} 
    } 

ModelBuilder cho SomeModel:

 modelBuilder.Entity<SomeModel>(entity => { 
      (...) 
      entity.Property(p => p.LimitMode); 
     }) 
+0

Thử nói một cách rõ ràng enum là một int 'public enum LimitMode: int' và đem lại cho các thành viên của enum một giá trị ('Max = 0, ...') –

+0

Tôi đã cố gắng này. Thật không may nó không hoạt động. Vẫn nhận được ngoại lệ truyền không hợp lệ:/ – panJapa

+0

Lạ, trong EF6 nó hoạt động hoàn hảo. EF7 chưa được phát hành đầy đủ, do đó, nó vẫn có thể là một lỗi, hoặc bạn có các giá trị trong cơ sở dữ liệu của bạn không được kết nối với bất kỳ enums nào của bạn. Nếu giá trị enum của bạn là 1-3 và có 4 được lưu trữ trong cơ sở dữ liệu của bạn, tôi cho rằng bạn sẽ nhận được lỗi đó. –

Trả lời

2

Điều này phù hợp với tôi. Tôi đang sử dụng "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final" trong project.json. Tôi đã phải chạy bản cập nhật cơ sở dữ liệu di chuyển ef như là một phần của việc đẩy mô hình.

public class Person 
{ 
    public int PersonId { get; set; } 
    public string LastName { get; set; } 
    public string FirstName { get; set; } 
    public int PersonTypeId { get; set; } 
    public PersonType PersonType { get; set; } 
    public ActiveType ActiveType { get; set; } 
} 

public enum ActiveType 
{ 
    Active = 0, 
    Inactive = 1 
} 
+0

Lược đồ trông như thế nào sau khi di chuyển bằng enum? Tôi hỏi vì việc di chuyển không hoạt động theo bất kỳ cách nào với MySQL ngay bây giờ nên tôi cần tạo các lược đồ bằng tay. –

+0

Nó sẽ được thiết lập dưới dạng cột int –