在实体框架表中使用枚举:对于什么?

时间:2017-08-14 00:56:44

标签: c# asp.net-mvc entity-framework enums

美好的一天,

我一直在学习一些实体框架,我来到这个代码

public   class Test
{
    public int Id { get; set; }
    public string name { get; set; }
    public testEnum testEnum { get; set; }

}
public enum testEnum {
    numero1=1,
    numero2=2
} 

然后我运行add-migration xxxxx和update-database,问题是当我去SQL服务器时,我无法在任何地方看到枚举。 我的问题是: 1.枚举发生了什么,我怎样才能在SQL服务器中看到它? 2.何时使用枚举而不是如下表:

public class EnumReplace{ public int Id { get; set; }
 public int value{ get; set; }
}
谢谢。

2 个答案:

答案 0 :(得分:0)

你必须在班上有枚举。像这样的东西:

 public testEnum MyProperty{ get; set; }

所以基本上你不能把枚举作为一个表。您可以将枚举作为表中某个属性的类型。

答案 1 :(得分:0)

1.What happened with the enum and how can I see it in SQL server?

枚举以整数形式存储在数据库表中。您将无法在数据库中看到枚举。在从数据库中检索值时,EF负责将基础类型转换为定义的枚举。

在Entity Framework中,枚举可以具有以下基础类型:Byte,Int16,Int32,Int64或SByte。 首先阅读有关EF代码中枚举支持的更多信息here

2. When do I use enum instead of a table like the following:

当我们为属性/字段允许一组预定义的值时,我们通常使用枚举。例如,

enum Days 
{ 
 Sat, 
 Sun, 
 Mon, 
 Tue, 
 Wed, 
 Thu, 
 Fri
};

您还可以使用已标记的枚举,详细了解枚举here