Я хочу создать миграцию для создания новой таблицы в моей базе данных, но после выполнения Add-Migration MsSql_Add_ArticleCategory_Table
я получил следующую ошибку:
Для свойства не найдено сопоставление с реляционным типом 'Alpha.Models.Identity.User.LockoutEnd' с типом CLR 'Nullable'.
Как я могу решить эту проблему (я использовал asp. net core 3.1 iin мой проект)?
PM> Add-Migration MsSql_Add_ArticleCategory_Table Сборка началась ... Сборка завершилась успешно. Microsoft.EntityFrameworkCore.Model.Validation [30000] Для десятичного столбца RateCounter типа объекта Article не указан тип. Это приведет к беззвучному усечению значений, если они не соответствуют точности и масштабу по умолчанию. Явно укажите тип столбца сервера SQL, который может содержать все значения, используя HasColumnType (). Microsoft.EntityFrameworkCore.Model.Validation [30000] Для десятичного столбца «Скорость» типа сущности «Рейтинг» не указан тип. Это приведет к беззвучному усечению значений, если они не соответствуют точности и масштабу по умолчанию. Явно укажите тип столбца сервера SQL, который может содержать все значения, используя HasColumnType (). Microsoft.EntityFrameworkCore.Infrastructure [10403] Entity Framework Core 3.1.3 инициализировал ApplicationDbContext с помощью поставщика Microsoft.EntityFrameworkCore.SqlServer с параметрами: MigrationsAssembly = Alpha.DataAccess System.InvalidOperationException: для свойства не найдено сопоставление с реляционным типом Alpha.Models.Identity.User.LockoutEnd с типом среды CLR Nullable. в Microsoft.EntityFrameworkCore.Storage.RelationalTypeMappingSourceExtensions.GetMapping (IRelationalTypeMappingSource typeMappingSource, свойство IProperty) в Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDiffer.Diff (IProrameperty target), источник IProrameperty Internal.MigrationsModelDiffer.DiffCollection [T] (IEnumerable 1
sources, IEnumerable
1 цели, DiffContext diffContext, Fun c4 diff,
Func
3 сложение, Fun c3 remove, Func
4 [] предикаты) + MoveNext () в System.Linq. Enumerable.ConcatIterator 1.MoveNext() at
Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDiffer.Diff(TableMapping
source, TableMapping target, DiffContext diffContext)+MoveNext() at
Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDiffer.DiffCollection[T](IEnumerable
1 исходники, IEnumerable 1 targets, DiffContext diffContext, Func
4 diff, Fun c3 add, Func
3 удалить, Fun c4[] predicates)+MoveNext() at
System.Linq.Enumerable.ConcatIterator
1.MoveNext () в Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDiffer.Sort (IEnumerable 1
operations, DiffContext diffContext) at
Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDiffer.GetDifferences(IModel
source, IModel target) at
Microsoft.EntityFrameworkCore.Migrations.Design.MigrationsScaffolder.ScaffoldMigration(String
migrationName, String rootNamespace, String subNamespace, String
language) at
Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.AddMigration(String
name, String outputDir, String contextType) at
Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(String
name, String outputDir, String contextType) at
Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigration.<>c__DisplayClass0_0.<.ctor>b__0()
at
Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0
1.b__0 () в Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute (действие действия) Для свойства Alpha.Models.Identity.User.LockoutEnd не может быть найдено сопоставление с реляционным типом. Тип среды CLR 'Nullable'. PM>
Модель идентификации пользователя:
namespace Alpha.Models.Identity
{
public class User : IdentityUser<int>
{
}
}
namespace Microsoft.AspNetCore.Identity
{
public class IdentityUser<TKey> where TKey : IEquatable<TKey>
{
public virtual DateTimeOffset? LockoutEnd { get; set; }
}
}
namespace Alpha.DataAccess
{
public class ApplicationDbContext : IdentityDbContext<User, Role, int, UserClaim, UserRole, UserLogin, RoleClaim, UserToken>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<User>(builder =>
{
builder.ToTable("User");
});
}
}
}