title: The store type 'Varchar(100)' could not be found in the SqlServer provider manifest
body: <p>I am working on an MVC 4 project that use EF 6 for all operations to and from the Database (SQL Server). I had to do some refactoring to use a more explicit Fluent API. Basically, now every entity on the project has its corresponding Fluent API code for all mappings.</p>
  
  <p>The problem comes when I try to run the EF commands from Package Manager Console. This is the error I am getting: 
  <strong>The store type 'Varchar(100)' could not be found in the SqlServer provider manifest</strong></p>
  
  <p>This is the complete log of the error:</p>
  
  <pre><code>PM&gt; enable-migrations
  Checking if the context targets an existing database...
  System.InvalidOperationException: The store type 'Varchar(100)' could not be found in the SqlServer provider manifest
     at System.Data.Entity.Utilities.DbProviderManifestExtensions.GetStoreTypeFromName(DbProviderManifest providerManifest, String name)
     at System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration.ConfigureColumn(EdmProperty column, EntityType table, DbProviderManifest providerManifest)
     at System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration.&lt;&gt;c__DisplayClass47_0.&lt;Configure&gt;b__0(Tuple`2 pm)
     at System.Data.Entity.Utilities.IEnumerableExtensions.Each[T](IEnumerable`1 ts, Action`1 action)
     at System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration.ConfigurePropertyMappings(IList`1 propertyMappings, DbProviderManifest providerManifest, Boolean allowOverride)
     at System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration.ConfigurePropertyMappings(DbDatabaseMapping databaseMapping, EntityType entityType, DbProviderManifest providerManifest, Boolean allowOverride)
     at System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration.Configure(EntityType entityType, DbDatabaseMapping databaseMapping, DbProviderManifest providerManifest)
     at System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.ConfigureEntityTypes(DbDatabaseMapping databaseMapping, ICollection`1 entitySets, DbProviderManifest providerManifest)
     at System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.Configure(DbDatabaseMapping databaseMapping, DbProviderManifest providerManifest)
     at System.Data.Entity.DbModelBuilder.Build(DbProviderManifest providerManifest, DbProviderInfo providerInfo)
     at System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection)
     at System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext)
     at System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input)
     at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
     at System.Data.Entity.Internal.LazyInternalContext.get_ModelBeingInitialized()
     at System.Data.Entity.Infrastructure.EdmxWriter.WriteEdmx(DbContext context, XmlWriter writer)
     at System.Data.Entity.Utilities.DbContextExtensions.GetModel(Action`1 writeXml)
     at System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration, DbContext usersContext, DatabaseExistenceState existenceState, Boolean calledByCreateDatabase)
     at System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration)
     at System.Data.Entity.Migrations.Design.MigrationScaffolder..ctor(DbMigrationsConfiguration migrationsConfiguration)
     at System.Data.Entity.Infrastructure.Design.Executor.CreateMigrationScaffolder(DbMigrationsConfiguration configuration)
     at System.Data.Entity.Infrastructure.Design.Executor.ScaffoldInitialCreateInternal(DbConnectionInfo connectionInfo, String contextTypeName, String contextAssemblyName, String migrationsNamespace, Boolean auto, String migrationsDir)
     at System.Data.Entity.Infrastructure.Design.Executor.ScaffoldInitialCreate.&lt;&gt;c__DisplayClass0_0.&lt;.ctor&gt;b__0()
     at System.Data.Entity.Infrastructure.Design.Executor.OperationBase.&lt;&gt;c__DisplayClass4_0`1.&lt;Execute&gt;b__0()
     at System.Data.Entity.Infrastructure.Design.Executor.OperationBase.Execute(Action action)
  </code></pre>
  
  <p>I have been reading a lot of blogs/ post how to solve this but none of them seems to work. These are a few things I have tried:</p>
  
  <ol>
  <li>Reinstalling EntityFramework.dll and EntityFrameWork.SqlServer.dll</li>
  <li>Adding a dummy method to explicitly load the assembly. This is the <a href="https://stackoverflow.com/questions/14033193/entity-framework-provider-type-could-not-be-loaded/19130718#19130718">link</a> </li>
  <li>Originally I was using EF 6.3.0 and upgraded to EF 6.4.0. I thought the upgrade was the problem so I downgraded but still having the same issue.</li>
  </ol>
  
  <p><strong>Updated</strong>
  This is the code for the Entity:</p>
  
  <pre><code>public class EntityA: BaseEntity
      {
          /// &lt;summary&gt;
          /// Gets or sets Contact identifier
          /// &lt;/summary&gt;
          public int Id { get; set; }
  
          public string Name { get; set; }
  
          public string Description { get; set; }
  
          public bool IsActive { get; set; }
  }
  </code></pre>
  
  <p>Using Fluent API configuration in a separated class:</p>
  
  <pre><code>public class EntityAConfiguration : EntityTypeConfiguration&lt;EntityA&gt;
      {
          public EntityAConfiguration()
          {
              this.ToTable("EntityA")
                  .HasKey(c =&gt; c.Id);
  
              this.Property(c =&gt; c.Id)
                  .HasColumnName("Id")
                  .HasColumnType("int")
                  .IsRequired();
  
              this.Property(c =&gt; c.Name)
                  .HasColumnName("Name")
                  .HasColumnType("Varchar(40)")
                  .IsRequired();
  
              this.Property(c =&gt; c.Description)
                  .HasColumnName("Description")
                  .HasColumnType("Varchar(100)")
                  .IsRequired();
  
              this.Property(c =&gt; c.IsActive)
                  .HasColumnName("IsActive")
                  .HasColumnType("bit");
          }
      }
  </code></pre>
  
  <p><strong><em>BaseEntity</em></strong> class is only having two properties: CreatedDate, UpdatedDate. I use that class in all Entities that needs to store that info.</p>
  
  <p>At this point I am running out of ideas how to solve this. If any one has face a similar problem I would really appreciate if you can help or point me to any information that could help. </p>