Korzystanie Database pierwszy projekt i posiadające tinyint (lub smallint) kolumna:Tinyint (bajt), Smallint (Int16) nie jest kompatybilny z Enum w EF5
[MyEnumColumn] [tinyint] NOT NULL
I odwzorowane tę kolumnę typu Enum w EDM z
External Type: NSpace.MyEnumType
Name:MyEnumType
UnderlyingType:Byte
Gdzie NSpace.MyEnumType jest zdefiniowany następująco:
public enum MyEnumType
{ One, Two, Three, All }
tylko dostać ten błąd, gdy próbuje załadować podmiot od kontekstu:
Schema specified is not valid. Errors:
No corresponding object layer type could be found for the conceptual type 'EntityDataModel.MyEnumType'.
The following information may be useful in resolving the previous error:
The underlying type of CLR enumeration type does not match the underlying type of EDM enumeration type.
To samo dotyczy, jeśli mogę użyć [Smallint] i [Int16] ale po zmianie bazy danych [Int] oraz typu wyliczeniowego do [Int32] błąd zniknął.
Dlaczego muszę przechowywać wartość wyliczenia w polu danych 4Byte (Int) zamiast 1Byte (Tinyint), gdy wyliczenia w 99,9% czasu nie mają więcej niż 256 elementów lub czy brakuje mi czegoś innego?
ten rozwiązano również błąd, że miałem dzisiaj. Więc +1 – magicandre1981
To uratowało mój dzień :) +1 – Midas
Dobrze, jeśli ktoś jest zainteresowany, tak na pewno mnie uratujesz !! dzięki stary!! – CMS