public enum UserGender: byte {
Unknown = 0,
Male = 1,
Female = 2
}
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
public UserGender Gender { get; set; }
public string Address { get; set; }
}
DDL Skript für die MSSQL Tabelle:Wie Enum zu MVC4-Modell aus der Datenbank laden?
CREATE TABLE UserProfile(
UserId int IDENTITY(1,1) NOT NULL PRIMARY KEY,
UserName nvarchar(56) NOT NULL,
Email varchar(50) NOT NULL,
Gender tinyint NOT NULL,
Address nvarchar(1000) NULL
)
Alle Felder werden aus der Datenbank geladen, wie sie Gender
ausnehmen sollte. Es wird immer mit 0 aufgefüllt. Es gibt einen offensichtlichen Schreibfehler, obwohl die Enumeration aus byte
stammt.
Wie man enum den richtigen Weg lädt und es als enum im Modell behält?
Welche Version von Entity Framework verwenden Sie? Enum wird in der neuesten Version sehr gut unterstützt, jedoch war es ein Problem mit der vorherigen Version. Haben Sie versucht, 'Byte' aus enum Definition zu entfernen – Satpal
@Satpal: Ich bin mir nicht sicher, aber denke, dass 4.4.0.0, Laufzeitversion v4.0.30319 – Paul
Ihre db und C# Typ übereinstimmen sollte, ändern Sie es zu' 'int'' anstelle von' 'byte'' –