update-database 报错
来源:11-6 【应用】用户模型设计与数据库更新

朱钢同学
2021-11-20
老师,我执行updata-database时报错:
PM> update-database
Build started...
Build succeeded.
System.InvalidCastException: Unable to cast object of type 'System.Guid' to type 'System.String'.
at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerStringTypeMapping.GenerateNonNullSqlLiteral(Object value)
at Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping.GenerateProviderValueSqlLiteral(Object value)
at Microsoft.EntityFrameworkCore.Update.UpdateSqlGenerator.AppendSqlLiteral(StringBuilder commandStringBuilder, ColumnModification modification, String tableName, String schema)
at Microsoft.EntityFrameworkCore.Update.UpdateSqlGenerator.AppendWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification, Boolean useOriginalValue)
at Microsoft.EntityFrameworkCore.Update.UpdateSqlGenerator.<AppendWhereClause>b__21_0(StringBuilder sb, ColumnModification v)
at System.Text.StringBuilderExtensions.AppendJoin[T](StringBuilder stringBuilder, IEnumerable`1 values, Action`2 joinAction, String separator)
at Microsoft.EntityFrameworkCore.Update.UpdateSqlGenerator.AppendWhereClause(StringBuilder commandStringBuilder, IReadOnlyList`1 operations)
at Microsoft.EntityFrameworkCore.Update.UpdateSqlGenerator.AppendUpdateCommand(StringBuilder commandStringBuilder, String name, String schema, IReadOnlyList`1 writeOperations, IReadOnlyList`1 conditionOperations)
at Microsoft.EntityFrameworkCore.Update.UpdateSqlGenerator.AppendUpdateOperation(StringBuilder commandStringBuilder, ModificationCommand command, Int32 commandPosition)
at Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.Generate(UpdateDataOperation operation, IModel model, MigrationCommandListBuilder builder)
at Microsoft.EntityFrameworkCore.Migrations.SqlServerMigrationsSqlGenerator.<>n__2(UpdateDataOperation operation, IModel model, MigrationCommandListBuilder builder)
at Microsoft.EntityFrameworkCore.Migrations.SqlServerMigrationsSqlGenerator.<>c__DisplayClass34_0.<Generate>b__0(MigrationCommandListBuilder b)
at Microsoft.EntityFrameworkCore.Migrations.SqlServerMigrationsSqlGenerator.GenerateExecWhenIdempotent(MigrationCommandListBuilder builder, Action`1 generate)
at Microsoft.EntityFrameworkCore.Migrations.SqlServerMigrationsSqlGenerator.Generate(UpdateDataOperation operation, IModel model, MigrationCommandListBuilder builder)
at Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.<>c.<.cctor>b__83_30(MigrationsSqlGenerator g, MigrationOperation o, IModel m, MigrationCommandListBuilder b)
at Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.Generate(MigrationOperation operation, IModel model, MigrationCommandListBuilder builder)
at Microsoft.EntityFrameworkCore.Migrations.SqlServerMigrationsSqlGenerator.Generate(MigrationOperation operation, IModel model, MigrationCommandListBuilder builder)
at Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.Generate(IReadOnlyList`1 operations, IModel model, MigrationsSqlGenerationOptions options)
at Microsoft.EntityFrameworkCore.Migrations.SqlServerMigrationsSqlGenerator.Generate(IReadOnlyList`1 operations, IModel model, MigrationsSqlGenerationOptions options)
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.GenerateUpSql(Migration migration, MigrationsSqlGenerationOptions options)
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.<>c__DisplayClass16_2.<GetMigrationCommandLists>b__2()
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String connectionString, String contextType)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String connectionString, String contextType)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_0.<.ctor>b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
Unable to cast object of type 'System.Guid' to type 'System.String'.
写回答
1回答
-
请检查一下用户模型的id类型以及ApplicationDbContext的设置,报错显示“无法把guid转化为string”。或者你也可以试试把项目目录下的migration文件夹全部删掉,然后重新做dotnet ef add migration 以及 database update。如果还不行,请把代码发给我邮箱382231334@qq.com,一定一定要在技术群里at我一下,要不然你的邮件就沉了。。。
012021-11-28
相似问题