2015-06-14 46 views
1

你好一点,我需要保存一个枚举在我的背景,我tryed这一点:我如何保存枚举在我的EF代码第6版

public class Context : DbContext 
    { 
     public Context() : base("name=Context"){} 

     MyEnum MyEnum { get; set; } 
     public DbSet<Object1> Objects{ get; set; } 

} 

,当我修改MyEnum它改变其值但保存更改后,当我想要使用它可以返回枚举的值0.继承人我的修改代码:

MyEnum example = MyEnum.Value1; 
using (var ctx = new Context()) 
     { 
      ctx.CriterioPlanificacion = example; 
      ctx.SaveChanges(); 
     } 
+0

正在生成什么SQL? https://msdn.microsoft.com/en-us/data/dn469464.aspx –

回答

0

所以我发现了这个老问题,所以我测试了它。 向DbContext添加枚举后的迁移是空的,因此EF不会将整型存入DbContext中。

微软文档建议只能用DbSets只有公开与TEntities集合DbSets它

0

枚举默认类型是一个int。由于它是第一个元素,因此值为0是正常的。如果您想为元素添加说明,则可以使用description属性并按here所示检索它。

+0

在数据库和内存中,枚举被保存为一个int我知道,但我的问题是conext方法SaveChanges()不会改变我的分数 –

0

在我的情况下,问题是,枚举领域已拥有财产“StoreGeneratedPattern”与价值=“计算”。更改为“无”后 - 所有事情都开始正常工作。

+0

如果你有一个问题只是使用问题或为用户提供一个很好的解决方案 – yass