【发布时间】:2015-10-30 14:51:55
【问题描述】:
在 ASP.NET 中,我使用具有代码优先方法的实体框架,我希望根据我的模型生成数据库表。其中一个属性是 Enum 值,它没有在生成的表中显示为列。
这是我的枚举:
public enum MyEnum
{
val_one = 1,
val_two = 2,
val_three = 3
}
这是我的模型:
public class MyModel
{
public int Id { get; set; }
public string attrString { get; set; }
public double attrDouble { get; set; }
public MyEnum attrEnum { get; set; }
}
因此,使用代码优先的方法,我生成了包含以下列的表:
CREATE TABLE [dbo].[MyModel]
(
[Id] INT IDENTITY (1, 1) NOT NULL,
[attrString] NVARCHAR (MAX) NOT NULL,
[attrDouble] FLOAT (53) NOT NULL,
[attrEnum] INT NOT NULL,
CONSTRAINT [PK_dbo.MyModel] PRIMARY KEY CLUSTERED ([Id] ASC)
);
稍后在基于模型生成表单(控制器和视图)时,我有一个缺少attrEnum 参数的表单。
那么如何继续以便在表单中拥有这个枚举属性(以下拉列表的格式)(仍然使用代码优先的方法)。我想可能需要生成另一个包含枚举的数据库表,但我真的不确定如何在实体框架中做到这一点,因为我是它的初学者。
【问题讨论】:
-
数据库与您的表单没有直接关系。现在您已经更改了后端,您需要修改视图。
标签: asp.net entity-framework enums ef-code-first entity-framework-migrations