我能够将枚举作为字符串存储在数据库中.
builder.Entity<Company>(eb =>
{
eb.Property(b => b.Stage).HasColumnType("varchar(20)");
});
Run Code Online (Sandbox Code Playgroud)
但是,当需要查询时,EF不知道将字符串解析为枚举.我该如何查询:
context
.Company
.Where(x => x.Stage == stage)
Run Code Online (Sandbox Code Playgroud)
这是一个例外:将varchar值'Opportunity'转换为数据类型int时转换失败
我有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) 我是 EF Core 的新手,正在尝试播种枚举。
据Data Seeding称,此功能是 EF Core 2.1 的新增功能。
我查看了几个解决方案,包括Blake Mumford 的 SO 解决方案,但这对我不起作用,因为枚举不是引用类型。
我的目标(在迁移的帮助下)是将 Category 枚举填充到名为 Category 的新 SQL 表中,并让我的 Payment 表包含引用 Category 表作为外键的列。
任何帮助将不胜感激。谢谢。
public partial class Payment
{
public int PaymentId { get; set; }
public DateTime PostedDate { get; set; }
public string Vendor { get; set; }
public decimal Amount { get; set; }
public virtual Category Category { get; set; }
}
public enum Category
{
Restaurants,
Groceries,
[Display(Name …Run Code Online (Sandbox Code Playgroud) asp.net entity-framework entity-framework-core .net-core asp.net-core