Note that there are some explanatory texts on larger screens.

plurals
  1. POCan I store enums as strings in EF 5?
    text
    copied!<p>We have been using EF CF for a while in our solution. Big fans! Up to this point, we've been using a hack to support enums (creating an extra field on the model; ignore the enum durring mapping; and map the extra field to the column in the db that we would have used). Traditionally we have been storing our enums as strings(varchars) in the DB (makes it nice and readable). Now with enum support in EF 5 (Beta 2) it looks like it only supports mapping enums to int columns in the DB....Can we get EF 5 to store our enums as their string representation.</p> <p>Where "Type" is an enum of type DocumentType </p> <pre><code>public enum DocumentType { POInvoice, NonPOInvoice, Any } </code></pre> <p>I tried to map it using:</p> <pre><code>public class WorkflowMap : EntityTypeConfiguration&lt;Model.Workflow.Workflow&gt; { public WorkflowMap() { ToTable("Workflow", "Workflow"); ... Property(wf =&gt; wf.Type).HasColumnType("varchar"); } } </code></pre> <p>I thought was going to be the magic bullet but..</p> <p>That just throws: </p> <blockquote> <p>Schema specified is not valid. Errors: (571,12) : error 2019: Member Mapping specified is not valid. The type 'Dodson.Data.DataAccess.EFRepositories.DocumentType[Nullable=False,DefaultValue=]' of member 'Type' in type 'Dodson.Data.DataAccess.EFRepositories.Workflow' is not compatible with 'SqlServer.varchar[Nullable=False,DefaultValue=,MaxLength=8000,Unicode=False,FixedLength=False]' of member 'Type' in type 'CodeFirstDatabaseSchema.Workflow'.</p> </blockquote> <p>Your thoughts?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload