【发布时间】:2015-12-30 17:17:09
【问题描述】:
我有一张表,其中有一列 char(2)
CREATE TABLE COMPANY (
EMP_ID INTEGER NOT NULL,
EMP_TYPE CHAR(2) NOT NULL,
EMP_NM VARCHAR(35) NOT NULL
);
使用实体框架,我想用枚举映射实体。
public class Company
{
public Company ()
{
Id = null;
Type = Enums.EnumType.TipoCompany.Matriz;
Name = string.Empty;
}
public int? Id{ get; set; }
public string Name{ get; set; }
public Enums.EnumType.TipoCompany TipoCompany { get; set; }
}
public class CompanyMap : EntityTypeConfiguration<Company>
{
public CompanyMap()
{
ToTable("COMPANY");
HasKey(t => new { t.Id});
Property(t => t.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None).HasColumnName("EMP_ID");
Property(t => t.Name)
.IsRequired()
.HasMaxLength(35)
.HasColumnType("Varchar")
.HasColumnName("EMP_NM");
Property(t => t.TypeCompany)
.IsRequired()
.HasColumnType("Varchar")
.HasColumnName("EMP_TYPE");
}
}
public class EnumTypeCompany
{
public enum TypeCompany
{
[Description("Matriz")]
Matriz = 01,
[Description("Filial")]
Filial = 02,
}
}
我收到了错误:
Contexto.Type[Nullable=False,DefaultValue=]' of member 'TypoCompany' in type 'Contexto.Company' is not compatible with 'FirebirdClient.varchar
如何将varchar转为枚举???
【问题讨论】:
-
"如何将varchar转为枚举???"你不能。你的问题是我如何将
string映射到int。 -
对不起,我问错了,因为在Java中我会创建一个转换类,它将从数据库中获取结果并变成枚举
标签: c# entity-framework