我正在使用EF Core和数据库优先方法,使用"Scaffold-DbContext"命令生成我的DbContext/Entities.
我怎样才能指导脚手架的DbContext某一个领域在一定的表格应该生成代码,使用枚举,而不是仅仅一个int?
以下是您在常规EF中的使用方法:https: //www.devu.com/cs-asp/lesson-69-mapping-enum-types-entity-properties-framework-designer/
此枚举已在代码中定义:
public enum StateEnum {
Ok = 1,
Fail = 2
}
Run Code Online (Sandbox Code Playgroud)
这就是Scaffold-DbContext给我的
public partial class Foo
{
public int Id { get; set; }
public int State { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这就是我想要它创建的:
public partial class Foo
{
public int Id { get; set; }
public StateEnum State { get; set; }
}
Run Code Online (Sandbox Code Playgroud) 我有EF7 RC1的问题.我无法在模型中使用枚举.我可以保存枚举属性.该值将转换为int.我的问题是在数据读取期间我得到了无效的强制转换异常.
谢谢
编辑:
枚举:
public enum LimitMode
{
Max,
Min,
MaxAndMin,
}
Run Code Online (Sandbox Code Playgroud)
模型:
public class SomeModel
{
(..)
public LimitMode LimitMode {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
SomeModel的ModelBuilder:
modelBuilder.Entity<SomeModel>(entity => {
(...)
entity.Property(p => p.LimitMode);
})
Run Code Online (Sandbox Code Playgroud)