枚举支持EF 6配置种子方法始终插入值0

时间:2014-03-30 19:46:39

标签: .net entity-framework enums .net-4.5

我在类IMage中加入了几个枚举。我首先使用代码并尝试播种Images表。不幸的是,无论使用什么枚举值,我都会在表中填充值为0.我正在使用.net 4.5并使用ef 6.Below是我的代码示例。

public class Image: Entity
    {
        public string Name { get; set; }

        public string Url { get; set; }

        [Required]
        public ImageSize Size { get; set; }

        [Required]
        public ImageType Type { get; set; }
    }

    public enum ImageSize
    {
        Large = 1,
        Medium,
        Small,
        Icon
    }

    public enum ImageType
    {
        Profile = 1,
        Inventory,
        Calendar
    }

种子方法:

//New Inventory Item
            context.InvItems.AddOrUpdate(
                b => b.Name,
                new InvItem
                {
                    Id = 1,
                    Name = "Custom Bracelet",
                    Description = "Beautiful Steel Casing",
                    InventoryImages = new List<Image>{
                        new Image{
                            Name = "bracelet_1.jpg",
                            Url = "",
                            Type = ImageType.Calendar,
                            Size = ImageSize.Medium,
                            CreateDate = DateTime.Now,
                            ModifiedDate = DateTime.Now
                        }                                
                    },
                    Price = 20.00,
                    CreateDate = DateTime.Now,
                    ModifiedDate = DateTime.Now
                }
            );

DB结果:

Id  Name             Url    Size    Type    
1   bracelet_1.jpg           0       0

正如您所看到的,size的枚举值应为2,type的枚举值应为3。 任何帮助都会非常感激,因为我很擅长将enums纳入我的ef开发工作中。

提前致谢,

1 个答案:

答案 0 :(得分:0)

谢谢大家的快速回复。实际上,枚举没有问题。出于某种原因,ef决定更新我的。\ sqlserverexpress实例上的数据库,而不是我的localdb实例。在阅读了update-database -verbose消息之后,我注意到它已经决定在我身上切换sqlserver实例,所以这些更改没有被枚举赋值反映出来,如上所示。

现在除了必须检查不同的实例外,一切都运行得非常好。

Id  Name            Url   Size    Type
1   bracelet_1.jpg          2      3

我现在正在研究如何显式设置sqlserver实例将写入的内容。再次感谢您的建议,我确信一切都会有效!!

由于