I encountered the following error while Generating/Updating a model from the database using the MySQL provider.
It looks like LegacyDbExpressionConverter doesn't handle DbCastExpression.
```
Unable to generate the model because of the following exception: 'System.Data.Entity.Core.EntityCommandCompilationException: An error occurred while preparing the command definition. See the inner exception for details. ---> System.NotImplementedException: The method or operation is not implemented.
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.Visit(DbCastExpression expression)
at System.Data.Entity.Core.Common.CommandTrees.DbCastExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.CreateNewRowTypeInstance(DbNewInstanceExpression inputExpression)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.Visit(DbNewInstanceExpression expression)
at System.Data.Entity.Core.Common.CommandTrees.DbNewInstanceExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.Visit(DbProjectExpression expression)
at System.Data.Entity.Core.Common.CommandTrees.DbProjectExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.Visit(DbUnionAllExpression expression)
at System.Data.Entity.Core.Common.CommandTrees.DbUnionAllExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.Visit(DbJoinExpression expression)
at System.Data.Entity.Core.Common.CommandTrees.DbJoinExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.Visit(DbJoinExpression expression)
at System.Data.Entity.Core.Common.CommandTrees.DbJoinExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.Visit(DbFilterExpression expression)
at System.Data.Entity.Core.Common.CommandTrees.DbFilterExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.Visit(DbProjectExpression expression)
at System.Data.Entity.Core.Common.CommandTrees.DbProjectExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbProviderServicesWrapper.CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree)
at System.Data.Entity.Core.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree, DbInterceptionContext interceptionContext)
at System.Data.Entity.Core.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree)
at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition..ctor(DbProviderFactory storeProviderFactory, DbCommandTree commandTree, IDbDependencyResolver resolver, BridgeDataReaderFactory bridgeDataReaderFactory, ColumnMapFactory columnMapFactory)
--- End of inner exception stack trace ---
at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition..ctor(DbProviderFactory storeProviderFactory, DbCommandTree commandTree, IDbDependencyResolver resolver, BridgeDataReaderFactory bridgeDataReaderFactory, ColumnMapFactory columnMapFactory)
at System.Data.Entity.Core.EntityClient.EntityCommand.CreateCommandDefinition()
at System.Data.Entity.Core.EntityClient.EntityCommand.TryGetEntityCommandDefinitionFromQueryCache(EntityCommandDefinition& entityCommandDefinition)
at System.Data.Entity.Core.EntityClient.EntityCommand.GetCommandDefinition()
at System.Data.Entity.Core.EntityClient.EntityCommand.InnerPrepare()
at System.Data.Entity.Core.EntityClient.EntityCommand.Prepare()
at System.Data.Entity.Core.EntityClient.EntityCommand.ExecuteReader(CommandBehavior behavior)
at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.EntityStoreSchemaGeneratorDatabaseSchemaLoader.LoadDataTable[T](String sql, Func`2 orderByFunc, DataTable table, EntityStoreSchemaFilterObjectTypes queryTypes, IEnumerable`1 filters, String[] filterAliases)
at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.EntityStoreSchemaGeneratorDatabaseSchemaLoader.LoadTableDetails(IEnumerable`1 filters)
at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.EntityStoreSchemaGeneratorDatabaseSchemaLoader.LoadStoreSchemaDetails(IList`1 filters)
at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.GetStoreSchemaDetails(StoreSchemaConnectionFactory connectionFactory)
at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.CreateStoreModel()
at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.GenerateModel(List`1 errors)
at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModels(String storeModelNamespace, List`1 errors)
at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModel(EdmxHelper edmxHelper)'.
```
It looks like LegacyDbExpressionConverter doesn't handle DbCastExpression.
```
Unable to generate the model because of the following exception: 'System.Data.Entity.Core.EntityCommandCompilationException: An error occurred while preparing the command definition. See the inner exception for details. ---> System.NotImplementedException: The method or operation is not implemented.
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.Visit(DbCastExpression expression)
at System.Data.Entity.Core.Common.CommandTrees.DbCastExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.CreateNewRowTypeInstance(DbNewInstanceExpression inputExpression)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.Visit(DbNewInstanceExpression expression)
at System.Data.Entity.Core.Common.CommandTrees.DbNewInstanceExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.Visit(DbProjectExpression expression)
at System.Data.Entity.Core.Common.CommandTrees.DbProjectExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.Visit(DbUnionAllExpression expression)
at System.Data.Entity.Core.Common.CommandTrees.DbUnionAllExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.Visit(DbJoinExpression expression)
at System.Data.Entity.Core.Common.CommandTrees.DbJoinExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.Visit(DbJoinExpression expression)
at System.Data.Entity.Core.Common.CommandTrees.DbJoinExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.Visit(DbFilterExpression expression)
at System.Data.Entity.Core.Common.CommandTrees.DbFilterExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbExpressionConverter.Visit(DbProjectExpression expression)
at System.Data.Entity.Core.Common.CommandTrees.DbProjectExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Microsoft.Data.Entity.Design.VersioningFacade.LegacyProviderWrapper.LegacyDbProviderServicesWrapper.CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree)
at System.Data.Entity.Core.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree, DbInterceptionContext interceptionContext)
at System.Data.Entity.Core.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree)
at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition..ctor(DbProviderFactory storeProviderFactory, DbCommandTree commandTree, IDbDependencyResolver resolver, BridgeDataReaderFactory bridgeDataReaderFactory, ColumnMapFactory columnMapFactory)
--- End of inner exception stack trace ---
at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition..ctor(DbProviderFactory storeProviderFactory, DbCommandTree commandTree, IDbDependencyResolver resolver, BridgeDataReaderFactory bridgeDataReaderFactory, ColumnMapFactory columnMapFactory)
at System.Data.Entity.Core.EntityClient.EntityCommand.CreateCommandDefinition()
at System.Data.Entity.Core.EntityClient.EntityCommand.TryGetEntityCommandDefinitionFromQueryCache(EntityCommandDefinition& entityCommandDefinition)
at System.Data.Entity.Core.EntityClient.EntityCommand.GetCommandDefinition()
at System.Data.Entity.Core.EntityClient.EntityCommand.InnerPrepare()
at System.Data.Entity.Core.EntityClient.EntityCommand.Prepare()
at System.Data.Entity.Core.EntityClient.EntityCommand.ExecuteReader(CommandBehavior behavior)
at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.EntityStoreSchemaGeneratorDatabaseSchemaLoader.LoadDataTable[T](String sql, Func`2 orderByFunc, DataTable table, EntityStoreSchemaFilterObjectTypes queryTypes, IEnumerable`1 filters, String[] filterAliases)
at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.EntityStoreSchemaGeneratorDatabaseSchemaLoader.LoadTableDetails(IEnumerable`1 filters)
at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.EntityStoreSchemaGeneratorDatabaseSchemaLoader.LoadStoreSchemaDetails(IList`1 filters)
at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.GetStoreSchemaDetails(StoreSchemaConnectionFactory connectionFactory)
at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.CreateStoreModel()
at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.GenerateModel(List`1 errors)
at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModels(String storeModelNamespace, List`1 errors)
at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModel(EdmxHelper edmxHelper)'.
```