loy*_*low 3 c# asp.net-mvc entity-framework asp.net-mvc-4
我的模型有一个枚举属性:
Sql server column "user_status" is a int NOT NULL.
[Column("User_Status")]
public UserStatus UserStatus { get; set; }
public enum UserStatus
{
Pending = 1,
Member = 2,
Banned = 3
}
Run Code Online (Sandbox Code Playgroud)
目前我在保存实体时收到错误,因为它表示user_status列不能为null.
如何在保存/更新时获取实体框架将此属性转换为Int,并在加载实体时将其转换为枚举.
Iro*_*n84 12
实体框架4不支持将枚举用作列类型.如果您希望对枚举具有本机支持,则需要升级到Entity Framework 5.
如果你绝对必须使用EF 4(因为已经在其中实现的项目),那么我建议你这样做:
[Column("User_Status")]
public int UserStatusAsInt { get; set; }
[NotMapped]
public UserStatus UserStatus
{
get { return (UserStatus) this.UserStatusAsInt; }
set { this.UserStatusAsInt = (int)value; }
}
Run Code Online (Sandbox Code Playgroud)
这不是一个漂亮的解决方案,但它是解决问题的一个可靠的解决方案,你仍然可以在你的页面上绑定它并在其他代码中将其视为枚举.
| 归档时间: |
|
| 查看次数: |
7153 次 |
| 最近记录: |