Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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
C# 找不到实体类型HierarchyId的合适构造函数_C#_.net Core_Entity Framework Core - Fatal编程技术网

C# 找不到实体类型HierarchyId的合适构造函数

C# 找不到实体类型HierarchyId的合适构造函数,c#,.net-core,entity-framework-core,C#,.net Core,Entity Framework Core,我在DotnetCore3.1中工作,需要使用层次结构,我必须在表中使用HierarchyId,我首先使用代码。但当我尝试执行添加迁移时,它返回以下错误: 未找到实体类型“HierarchyId”的合适构造函数。以下构造函数的参数无法绑定到实体类型的属性:无法绑定“HierarchyId(SqlHierarchyId value)”中的“value” 这是我的实体类 public class MyHClass { public int Id { get; set; } [Requ

我在DotnetCore3.1中工作,需要使用层次结构,我必须在表中使用HierarchyId,我首先使用代码。但当我尝试执行添加迁移时,它返回以下错误:

未找到实体类型“HierarchyId”的合适构造函数。以下构造函数的参数无法绑定到实体类型的属性:无法绑定“HierarchyId(SqlHierarchyId value)”中的“value”

这是我的实体类

public class MyHClass
{
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    public HierarchyId Level { get; set; }
}
这是我的上下文类,在添加MyHClass worlds之前,它会正确地查找表并将表添加到数据库中

public class ArtiDbContext : IdentityDbContext<IdentityUser>
{
    public ArtiDbContext(DbContextOptions<MyDbContext> options)
        : base(options)
    {

    }

    public new DbSet<T> Set<T>() where T : BaseEntity
    {
        return base.Set<T>();
    }

    public DbSet<SampleEntity> SampleEntity { get; set; }
    public DbSet<MyHClass> MyHClasses { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {

        base.OnModelCreating(modelBuilder);

    }
}
公共类ArtiDbContext:IdentityDbContext
{
公共ArtiDbContext(DbContextOptions)
:基本(选项)
{
}
public new DbSet Set(),其中T:BaseEntity
{
返回base.Set();
}
公共DbSet SampleEntity{get;set;}
公共DbSet MyHClasses{get;set;}
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{
基于模型创建(modelBuilder);
}
}
这是我安装的软件包:

<PackageReference Include="EntityFrameworkCore.SqlServer.HierarchyId" Version="1.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.4">

有关更多信息,我也将整个错误放在这里:

PM> add-migration
cmdlet Add-Migration at command pipeline position 1
Supply values for the following parameters:
Name: gh
Build started...
Build succeeded.
System.InvalidOperationException: No suitable constructor found for entity type 'HierarchyId'. The following constructors had parameters that could not be bound to properties of the entity type: cannot bind 'value' in 'HierarchyId(SqlHierarchyId value)'.
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.ConstructorBindingConvention.ProcessModelFinalized(IConventionModelBuilder modelBuilder, IConventionContext`1 context)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ImmediateConventionScope.OnModelFinalized(IConventionModelBuilder modelBuilder)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.OnModelFinalized(IConventionModelBuilder modelBuilder)
   at Microsoft.EntityFrameworkCore.Metadata.Internal.Model.FinalizeModel()
   at Microsoft.EntityFrameworkCore.ModelBuilder.FinalizeModel()
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.CreateModel(DbContext context, IConventionSetBuilder conventionSetBuilder)
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.GetModel(DbContext context, IConventionSetBuilder conventionSetBuilder)
   at Microsoft.EntityFrameworkCore.Internal.DbContextServices.CreateModel()
   at Microsoft.EntityFrameworkCore.Internal.DbContextServices.get_Model()
   at Microsoft.EntityFrameworkCore.Infrastructure.EntityFrameworkServicesBuilder.<>c.<TryAddCoreServices>b__7_3(IServiceProvider p)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass1_0.<RealizeService>b__0(ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
   at Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependencies()
   at Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider()
   at Microsoft.EntityFrameworkCore.DbContext.Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<System.IServiceProvider>.get_Instance()
   at Microsoft.EntityFrameworkCore.Infrastructure.Internal.InfrastructureExtensions.GetService[TService](IInfrastructure`1 accessor)
   at Microsoft.EntityFrameworkCore.Infrastructure.AccessorExtensions.GetService[TService](IInfrastructure`1 accessor)
   at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(Func`1 factory)
   at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(String contextType)
   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.<Execute>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
No suitable constructor found for entity type 'HierarchyId'. The following constructors had parameters that could not be bound to properties of the entity type: cannot bind 'value' in 'HierarchyId(SqlHierarchyId value)'.
PM>添加迁移
cmdlet在命令管道位置1添加迁移
提供以下参数的值:
姓名:gh
构建已开始。。。
构建成功。
System.InvalidOperationException:未找到适用于实体类型“HierarchyId”的构造函数。以下构造函数的参数无法绑定到实体类型的属性:无法绑定“HierarchyId(SqlHierarchyId value)”中的“value”。
位于Microsoft.EntityFrameworkCore.Metadata.Conventions.ConstructorBindingConvention.ProcessModelFinalized(IConventionModelBuilder modelBuilder,IConventionContext`1上下文)
位于Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ImmediateConventionScope.OnModelFinalized(IConventionModelBuilder modelBuilder modelBuilder)
位于Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.OnModelFinalized(IConventionModelBuilder modelBuilder)
在Microsoft.EntityFrameworkCore.Metadata.Internal.Model.FinalizeModel()中
在Microsoft.EntityFrameworkCore.ModelBuilder.FinalizeModel()中
位于Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.CreateModel(DbContext上下文,IConventionSetBuilder约定SetBuilder)
位于Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.GetModel(DbContext上下文,IConventionSetBuilder约定SetBuilder)
在Microsoft.EntityFrameworkCore.Internal.DbContextServices.CreateModel()中
在Microsoft.EntityFrameworkCore.Internal.DbContextServices.get_Model()中
位于Microsoft.EntityFrameworkCore.Infrastructure.EntityFrameworkServicesBuilder.c.b_uu7_u3(IServiceProvider p)
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite FactoryCallSite,RuntimeResolverContext上下文)
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite,Target参数)
在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite、RuntimeResolverContext上下文、ServiceProviderEngineScope serviceProviderEngine、RuntimeResolverLockType)
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCache(ServiceCallSite singletonCallSite,RuntimeResolverContext上下文)
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite,Target参数)
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite ConstructorCallSite,RuntimeResolverContext上下文)
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite,Target参数)
在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite、RuntimeResolverContext上下文、ServiceProviderEngineScope serviceProviderEngine、RuntimeResolverLockType)
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCache(ServiceCallSite singletonCallSite,RuntimeResolverContext上下文)
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite,Target参数)
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite,ServiceProviderEngineScope作用域)
在Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.c__DisplayClass1_0.b__0(ServiceProviderEngineScope作用域)
在Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(输入serviceType,ServiceProviderEngineScope ServiceProviderEngineScope)
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(类型serviceType)
位于Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider提供程序,键入serviceType)
位于Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider提供程序)
在Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependencies()中
在Microsoft.EntityFrameworkCore.DbContext.get\u InternalServiceProvider()中
在Microsoft.EntityFrameworkCore.DbContext.Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure.get_Instance()中
位于Microsoft.EntityFrameworkCore.Infrastructure.Internal.InfrastructureExtensions.GetService[TService](IInfrastructure`1访问器)
位于Microsoft.EntityFrameworkCore.Infrastructure.AccessorExtensions.GetService[TService](IInfrastructure`1访问器)
位于Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(Func`1工厂)
在M
public class MyHClass
{
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    public SqlHierarchyId Level { get; set; }
}
options.UseSqlServer(
    connectionString,
    x => x.UseHierarchyId());