私たちのソリューションでは、しばらくの間EFCFを使用しています。大ファン!これまで、列挙型をサポートするためにハックを使用してきました(モデルに追加のフィールドを作成し、列挙型のマッピングを無視し、追加のフィールドを使用したはずのデータベースの列にマップします)。従来、列挙型は文字列(varchars)としてDBに格納されていました(読みやすくなります)。現在、EF 5(ベータ2)で列挙型がサポートされているため、DB内のint列への列挙型のマッピングのみがサポートされているようです。EF5に列挙型を文字列表現として格納させることはできますか。
ここで、「Type」はタイプ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.Workflow'のメンバー'Type'のタイプ'Dodson.Data.DataAccess.EFRepositories.DocumentType[Nullable = False、DefaultValue =]'は、'SqlServer.varchar [Nullable = False、DefaultValue =、MaxLength = 8000、Unicode = False、FixedLength =False]'タイプ'CodeFirstDatabaseSchema.Workflow'のメンバー'Type'。
あなたの考え?