实体框架仅作为POCO枚举

Kha*_*meh 2 database entity-framework poco c#-4.0

我试图将存在于我的模型中的枚举保存到数据库,但每次我做实体Framwework抱怨没有与Enum关联的查找表.我不想要查找表,我只想让枚举存在于代码中并作为整数存储在数据库中.

保存不公开其关系的外键属性的实体时发生错误.EntityEntries属性将返回null,因为无法将单个实体标识为异常的来源.通过在实体类型中公开外键属性,可以更轻松地在保存时处理异常.有关详细信息,请参阅InnerException.

"无法将值NULL插入列'Type',表'Test.dbo.Interests';列不允许空值.INSERT失败.\ r \n语句已终止.

Type的值绝对不是null,EF只是因为它找不到我不想要的外键表.

如何让实体框架将我的枚举视为一个int,然后当我调用数据库来检索我的模型时转换回来?

Lad*_*nka 6

实体框架根本不支持枚举,因此您无法将枚举属性映射到数据库.您必须使用int属性,如果您还需要枚举,则必须定义另一个未映射的属性(如果是自动生成的实体,则必须在分部类中定义它),将int转换为枚举.

编辑:在以后的版本中添加了枚举支持.如果要映射枚举(整数值,而不是字符串),则需要使用.NET 4.5和EF5或EF6.x和.NET 4.x.