Невозможно найти сопоставление с реляционным типом для свойства Identity.User.LockoutEnd с типом CLR «Nullable <DateTimeOffset>» - PullRequest
0 голосов
/ 27 мая 2020

Я хочу создать миграцию для создания новой таблицы в моей базе данных, но после выполнения 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>

No mapping to a relational type can be found for property

Модель идентификации пользователя:

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"); 
            });
        }
    }
}
...