Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 找不到属性';Identity.User.LockoutEnd';使用CLR类型';可为空<;DateTimeOffset>';_Asp.net Core_Entity Framework Core_Entity Framework Migrations_Asp.net Core 3.1_Ef Code First Mapping - Fatal编程技术网

Asp.net core 找不到属性';Identity.User.LockoutEnd';使用CLR类型';可为空<;DateTimeOffset>';

Asp.net core 找不到属性';Identity.User.LockoutEnd';使用CLR类型';可为空<;DateTimeOffset>';,asp.net-core,entity-framework-core,entity-framework-migrations,asp.net-core-3.1,ef-code-first-mapping,Asp.net Core,Entity Framework Core,Entity Framework Migrations,Asp.net Core 3.1,Ef Code First Mapping,我想创建一个迁移,以便在数据库中创建一个新表,但在执行添加迁移MsSql\u Add\u articleCography\u table后,出现以下错误: 找不到属性的关系类型映射 CLR类型为“Alpha.Models.Identity.User.LockoutEnd” “可为空” 我如何解决它(我在项目中使用了asp.net core 3.1)? PM>添加迁移MsSql\u添加\u ArticleCategory\u表生成已开始。。。 构建成功。Microsoft.EntityFramew

我想创建一个迁移,以便在数据库中创建一个新表,但在执行
添加迁移MsSql\u Add\u articleCography\u table
后,出现以下错误:

找不到属性的关系类型映射 CLR类型为“Alpha.Models.Identity.User.LockoutEnd” “可为空”

我如何解决它(我在项目中使用了asp.net core 3.1)?

PM>添加迁移MsSql\u添加\u ArticleCategory\u表生成已开始。。。 构建成功。Microsoft.EntityFrameworkCore.Model.Validation[30000] 未为实体类型“Article”上的十进制列“RateCounter”指定类型。这将导致值被静默截断 如果它们不符合默认的精度和比例。明确地 指定可容纳所有值的SQL server列类型 使用“HasColumnType()”。 Microsoft.EntityFrameworkCore.Model.Validation[30000] 未为实体类型“Rating”上的十进制列“Rate”指定类型。这将导致值在以下情况下被静默截断: 不适合默认的精度和比例。显式指定 SQL server列类型,可以使用 “HasColumnType()”。Microsoft.EntityFrameworkCore.Infrastructure[10403] 实体框架核心3.1.3使用提供程序“Microsoft.EntityFrameworkCore.SqlServer”初始化了“ApplicationDbContext”,选项如下: MigrationAssembly=Alpha.DataAccess System.InvalidOperationException: 找不到属性的关系类型映射 CLR类型为“Alpha.Models.Identity.User.LockoutEnd” “可为空”。在 Microsoft.EntityFrameworkCore.Storage.RelationalTypeMappingSourceExtensions.GetMapping(IRelationalTypeMappingSource typeMappingSource,IProperty属性)位于 Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDifference.Diff(IProperty 源,IProperty目标,DiffContext DiffContext)+MoveNext()位于 Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationModelDifference.DiffCollection[T](IEnumerable
1
源,IEnumerable
1目标,DiffContext DiffContext,Func
4 diff,
Func
3添加,Func
3删除,Func
4[]谓词)+MoveNext()在 System.Linq.Enumerable.ConcatIterator
1.MoveNext()位于
Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDifference.Diff(TableMapping
源,TableMapping目标,DiffContext DiffContext)+MoveNext()位于
Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationModelDifference.DiffCollection[T](IEnumerable
1 源,IEnumerable
1目标,DiffContext DiffContext,Func
4 diff, Func
3添加,Func
3删除,Func
4[]谓词)+MoveNext()位于
System.Linq.Enumerable.concaterator
1.MoveNext()位于 Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationModelDifference.Sort(IEnumerable
1
操作,DiffContext(DiffContext)
Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDifference.GetDifferences(IModel
来源,IModel目标)位于
Microsoft.EntityFrameworkCore.Migrations.Design.MigrationsScaffolder.ScaffoldMigration(字符串
migrationName、字符串根命名空间、字符串子命名空间、字符串
语言)在
Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.AddMigration(字符串
名称、字符串outputDir、字符串contextType)位于
Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(字符串
名称、字符串outputDir、字符串contextType)位于
Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigration.c__DisplayClass0_0.b_0()
在
Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.c__DisplayClass3_0
1.b__0() 在 Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(操作 操作)找不到属性的关系类型映射 CLR类型为“Alpha.Models.Identity.User.LockoutEnd” “可为空”。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"); 
            });
        }
    }
}
名称空间Alpha.Models.Identity
{
公共类用户:IdentityUser
{
}
}
命名空间Microsoft.AspNetCore.Identity
{
公共类标识,其中TKey:IEquatable
{
公共虚拟DateTimeOffset?锁定输出{get;set;}
}
}
名称空间Alpha.DataAccess
{
公共类ApplicationDbContext:IdentityDbContext
{
公共应用程序DBContext(DbContextOptions选项):基本(选项)
{
}
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{
基于模型创建(modelBuilder);
实体(生成器=>
{
建造商。可转让(“用户”);
});
}
}
}

您可以添加模型类以查看哪些字段会导致问题吗?我添加了用户模型。奇怪的是,我对类型为
System.DateTimeOffset的字段没有问题?
。您是否可以检查您的
DateTimeOffset
实际上来自
系统
命名空间?可能是您的一个using语句正在拉入另一个默认情况下无法映射的语句。您可以添加模型类以查看哪些字段导致了问题吗?我添加了用户模型。奇怪的是,我对类型为
System.DateTimeOffset?
的字段没有问题。您是否可以检查您的
DateTimeOffset
实际上来自
系统
命名空间?可能是您的一个using语句正在引入另一个默认情况下无法映射的语句。