在这个问题上我有点困惑,尽管这是不言而喻的。我确实尝试过将数据类型从bool更改为bit,但是,bit数据类型显示为白色,并且有一个红色的波浪形。您可以在下面找到我的代码,其中的数据类型已更改为bit。请注意,这是在我运行add-migration命令并查看迁移代码之后。
migrationBuilder.CreateTable(
name: "AspNetUsers",
columns: table => new
{
Id = table.Column<string>(nullable: false),
UserName = table.Column<string>(maxLength: 256, nullable: true),
NormalizedUserName = table.Column<string>(maxLength: 256, nullable: true),
Email = table.Column<string>(maxLength: 256, nullable: true),
NormalizedEmail = table.Column<string>(maxLength: 256, nullable: true),
EmailConfirmed = table.Column<bit>(nullable: false),
PasswordHash = table.Column<string>(nullable: true),
SecurityStamp = table.Column<string>(nullable: true),
ConcurrencyStamp = table.Column<string>(nullable: true),
PhoneNumber = table.Column<string>(nullable: true),
PhoneNumberConfirmed = table.Column<bit>(nullable: false),
TwoFactorEnabled = table.Column<bit>(nullable: false),
LockoutEnd = table.Column<DateTimeOffset>(nullable: true),
LockoutEnabled = table.Column<bit>(nullable: false),
AccessFailedCount = table.Column<int>(nullable: false),
FirstName = table.Column<string>(nullable: true),
LastName = table.Column<string>(nullable: true)
},发布于 2020-12-10 11:25:00
请在使用实体框架核心时检查mapping between C# data type to SQL Server column data type。

C# bool类型将映射到SQL Server bit类型。因此,在C#中,我们必须使用bool类型,而不是bit类型,但是您可以将类型属性设置为bit。代码如下:
migrationBuilder.CreateTable(
name: "TestTables",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Name = table.Column<string>(type: "nvarchar(max)", nullable: true),
Email = table.Column<string>(type: "nvarchar(max)", nullable: true),
EmailConfirmed = table.Column<bool>(type: "bit", nullable: false),
LockoutEnd = table.Column<DateTime>(type: "datetime2", nullable: false),
LockoutEnabled = table.Column<bool>(type: "bit", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_TestTables", x => x.Id);
});SQL server数据库结果如下:

https://stackoverflow.com/questions/65222051
复制相似问题