use*_*434 5 entity-framework-core entity-framework-migrations
我使用 Entity Framework 3.1 构建了一个解决方案。第一次迁移顺利进行。第二次迁移无缘无故地神秘地更改了 AspNetUserTokens 和 AspNetUserLogins 表中的列。我在迁移中添加与这些表无关的表。
迁移文件中的代码如下:
migrationBuilder.AlterColumn<string>(
name: "Name",
table: "AspNetUserTokens",
maxLength: 128,
nullable: false,
oldClrType: typeof(string),
oldType: "nvarchar(450)");
migrationBuilder.AlterColumn<string>(
name: "LoginProvider",
table: "AspNetUserTokens",
maxLength: 128,
nullable: false,
oldClrType: typeof(string),
oldType: "nvarchar(450)");
migrationBuilder.AlterColumn<string>(
name: "ProviderKey",
table: "AspNetUserLogins",
maxLength: 128,
nullable: false,
oldClrType: typeof(string),
oldType: "nvarchar(450)");
migrationBuilder.AlterColumn<string>(
name: "LoginProvider",
table: "AspNetUserLogins",
maxLength: 128,
nullable: false,
oldClrType: typeof(string),
oldType: "nvarchar(450)");
Run Code Online (Sandbox Code Playgroud)
包管理器控制台中的 Update-Database 命令失败,因为列宽已以不一致的方式更改。有谁知道这里发生了什么以及如何解决它?
这是一个真正的表演障碍。
感谢您的帮助。
小智 0
对于遇到这个问题的其他人,我在添加自定义身份用户类型时遇到了这个问题。可以MaxLengthForKeys在注册Identity时设置Startup.cs,例如:
services.AddDefaultIdentity<ApplicationUser>(options => {
options.SignIn.RequireConfirmedAccount = true;
options.Stores.MaxLengthForKeys = 128;
})
.AddRoles<IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>();
Run Code Online (Sandbox Code Playgroud)
如果您随后恢复数据库上下文模型快照 cs 文件,然后重新构建迁移,则生成的迁移不应更改这些列长度 - 当然假设之前的默认值是 128。
| 归档时间: |
|
| 查看次数: |
1075 次 |
| 最近记录: |