2
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; }
}
爲MSSQL表DDL腳本:如何從數據庫中將枚舉加載到MVC4模型?
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
)
所有領域正在從數據庫中加載,因爲他們應該除外Gender
。它始終填充0。雖然枚舉是從byte
類型派生的,但存在明顯的類型轉換失敗。
如何加載enum正確的方式,並保持它在模型枚舉?
您正在使用哪個版本的實體框架? Enum在最新版本中得到了很好的支持,但它是以前版本的問題。你有沒有嘗試從枚舉定義中刪除'字節' – Satpal
@Satpal:我不確定,但認爲4.4.0.0,運行時版本v4.0.30319 – Paul
你的db和c#類型應該匹配,將它改爲「int」而不是' 'byte'' –