Я мигрирую первый домен кода (первоначальное создание) в веб-приложении Asp.Net Core 2.1.
Команда add-migration создала следующий код (для краткости удаленные части не удалены)
migrationBuilder.CreateIndex(
name: "RoleNameIndex",
schema: "BatlCtx",
table: "AspNetRoles",
column: "NormalizedName",
unique: true,
filter: "[NormalizedName] IS **NOT** NULL");
migrationBuilder.CreateIndex(
name: "UserNameIndex",
schema: "BatlCtx",
table: "AspNetUsers",
column: "NormalizedUserName",
unique: true,
filter: "[NormalizedUserName] IS **NOT** NULL");
Вот код из миграции для создания таблицы
migrationBuilder.CreateTable(
name: "AspNetUsers",
schema: "BatlCtx",
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<bool>(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<bool>(nullable: false),
TwoFactorEnabled = table.Column<bool>(nullable: false),
LockoutEnd = table.Column<DateTimeOffset>(nullable: true),
LockoutEnabled = table.Column<bool>(nullable: false),
AccessFailedCount = table.Column<int>(nullable: false),
FirstName = table.Column<string>(maxLength: 50, nullable: false),
LastName = table.Column<string>(maxLength: 80, nullable: false),
Gender = table.Column<int>(nullable: false),
MobilePhone = table.Column<string>(maxLength: 24, nullable: false),
DateOfBirth = table.Column<DateTime>(nullable: false),
UserPicture = table.Column<byte[]>(nullable: true),
TimesLoggedIn = table.Column<int>(nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_AspNetUsers", x => x.Id);
});
При попытке обновления базы данных в первый раз возникает эта ошибка
System.Data.SqlClient.SqlException (0x80131904): неправильный синтаксис рядом с ключевым словом «НЕ».в System.Data.SqlClient.SqlConnection.OnError (исключение SqlException, логическое breakConnection, действие 1 wrapCloseInAction)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action
1 wrapCloseInAction) в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject BooleClaySlaySignSlayOneBlocksOneLockOneLockLockOll)1014 * Я удалил часть кода "filter:" [NormalizedName] IS NOT NULL "", но я все еще получаю ту же ошибку
Ключевые слова NOT в методах CreateIndex (первый код выделен жирным шрифтом)фрагмент в посте) виновник.Теперь я могу понять, написал ли я этот код, но это сгенерированный код из адд-миграции.Я не понимаю, почему это ошибка.