如何将枚举类型映射到tinyint

时间:2014-08-29 16:01:52

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

我只是想知道。是否有可能在流畅的api或Enum类型被映射为tinyint的任何内容?

比如说,

public enum PaperType
{
  Rough=1,
  Smooth=2,
}

public class TestPaper
{
   public PaperType PaperType { get; set; }
}

如果正确运行迁移,它将映射到int,这不是我不想要的。我想分配tinyint,以便它不会占用太多空间。 int 4bytestinyint 1byte有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:6)

你可以这样做:

public enum PaperType : byte
{
  Rough=1,
  Smooth=2,
}

但不要这样做,那就是过早优化。如果您的应用程序性能出现问题,只能进行这样的优化。 (默认情况下,enum的铺设类型为int,因此我不确定如果将byte作为枚举类型可以为您节省任何内容,则会将其视为{{1}如果您计划使用int数组,那么它可能会很有用,在这种情况下,您将获得enum

答案 1 :(得分:1)

我不确定你要求的是什么:

public enum PaperType : byte
{
  Rough=1,
  Smooth=2,
}