2016-02-09 16 views
6

Mam problem z EF7 RC1. Nie mogę pracować z wyliczeniami w moim modelu. Mogę zapisać własność enum. Wartość jest rzutowana na int. Mój problem polega na tym, że podczas odczytu danych otrzymuję wyjątek nieprawidłowego rzutu.Czy EF7 obsługuje wyliczenia?

  1. Czy EF7 obsługuje właściwości wyliczania?
  2. Jak mogę to skonfigurować za pomocą płynnego interfejsu API?

Dzięki

EDIT:

ENUM:

public enum LimitMode 
    { 
     Max, 
     Min, 
     MaxAndMin, 
    } 

Model:

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

ModelBuilder dla SomeModel:

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

Spróbuj jawnie mówiąc enum jest int 'publicznego LimitMode ENUM: int' i wydawania członkom wyliczenia wartości (' max = 0, ... ') –

+0

próbowałem tego. Niestety to nie działa. Nadal dostaję wyjątek dotyczący nieprawidłowego rzutowania:/ – panJapa

+0

Dziwne, w EF6 działa idealnie. EF7 nie jest jeszcze w pełni wydany, więc może nadal być błędem lub masz wartości w bazie danych, które nie są połączone z żadnym z twoich wyliczeń. Jeśli twoje wartości wyliczeniowe to 1-3, a w bazie danych jest 4, przypuszczam, że dostałeśby ten błąd. –

Odpowiedz

2

To zadziałało dla mnie. Używam "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final" w project.json. Musiałem uruchomić aktualizację bazy danych migracji migr w ramach przesuwania modelu.

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

Jak wyglądał schemat po migracji z wyliczeniem? Pytam, ponieważ migracje nie działają teraz w żaden sposób z MySQL, więc muszę ręcznie tworzyć schematy. –

+0

Zostanie skonfigurowany jako kolumna int –