我们一直在使用EF CF在我们的解决方案一段时间。 忠实粉丝! 到现在为止,我们一直在使用一个黑客以支持枚举(在模型中创建一个额外的字段;忽略枚举durring映射;以及额外的字段映射到我们会用在数据库列)。 传统上我们一直保存我们的枚举作为字符串(VARCHAR处理)在DB(策略的好处和可读性)。 现在,随着EF 5枚举支持(测试版2)它看起来像它仅支持映射枚举为int的列DB ....我们可以得到EF 5到我们的枚举存储为他们的字符串表示。
其中“类型”是类型DocumentType的枚举
public enum DocumentType
{
POInvoice,
NonPOInvoice,
Any
}
我试图使用映射它:
public class WorkflowMap : EntityTypeConfiguration<Model.Workflow.Workflow>
{
public WorkflowMap()
{
ToTable("Workflow", "Workflow");
...
Property(wf => wf.Type).HasColumnType("varchar");
}
}
我的想法是将成为灵丹妙药,但..
这只是抛出:
指定的架构是无效的。 错误:(571,12):错误2019:会员映射指定无效。 类型“Dodson.Data.DataAccess.EFRepositories.DocumentType [可空=假,默认值=”的类型成员“类型”“Dodson.Data.DataAccess.EFRepositories.Workflow”与“SqlServer.varchar不兼容[可空=假,默认值=,的MaxLength = 8000,的Unicode =假,定长=假]”的成员 '' 在类型 '类型CodeFirstDatabaseSchema.Workflow'。
你的意见?