当我搭建这个 Oracle DB(数据库优先)时,它会为我生成所有模型、上下文、FK 关系等。但是当我开始查询时,它在上下文中给了我一个错误。(简单的事情就像从(任何表)中选择 *)
出现以下错误。
System.InvalidOperationException
H结果=0x80131509
Message=属性“Address.AddressId”、“Address.AddressItemId”配置为使用“Identity”值生成器并映射到同一个表“[DBName].ADDRESS”。每个表只能配置一列作为“身份”。为不应使用“Identity”的属性调用“ValueGeneratedNever”。
源=Oracle.EntityFrameworkCore
堆栈跟踪:
在 Oracle.EntityFrameworkCore.Internal.OracleModelValidator.ValidateSharedColumnsCompatibility(IReadOnlyList`1 mappedTypes,字符串表名)
在 Microsoft.EntityFrameworkCore.Infrastructure.RelationalModelValidator.ValidateSharedTableCompatibility(IModel 模型)
在 Microsoft.EntityFrameworkCore.Infrastructure.RelationalModelValidator.Validate(IModel 模型)
在 Oracle.EntityFrameworkCore.Internal.OracleModelValidator.Validate(IModel 模型)
在 Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ValidatingConvention.Apply(InternalModelBuilder modelBuilder)
在 Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ImmediateConventionScope.OnModelBuilt(InternalModelBuilder modelBuilder)
在 Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.OnModelBuilt(InternalModelBuilder modelBuilder)
在 Microsoft.EntityFrameworkCore.Metadata.Internal.Model.Validate()
在 Microsoft.EntityFrameworkCore.ModelBuilder.FinalizeModel()
在 Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.CreateModel(DbContext 上下文,IConventionSetBuilder 约定集生成器,IModelValidator 验证器)
在 Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.<>c__DisplayClass5_0.b__1()
在 System.Lazy`1.ViaFactory(LazyThreadSafetyMode 模式)
在 System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
在 System.Lazy`1.CreateValue()
在 System.Lazy`1.get_Value()
在 Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.GetModel(DbContext 上下文,IConventionSetBuilder 约定集生成器,IModelValidator 验证器)
在 Microsoft.EntityFrameworkCore.Internal.DbContextServices.CreateModel()
在 Microsoft.EntityFrameworkCore.Internal.DbContextServices.get_Model()
在 Microsoft.EntityFrameworkCore.Infrastructure.EntityFrameworkServicesBuilder.<>c.b__7_2(IServiceProvider p)
在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite,ServiceProviderEngineScope 范围)
在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite callSite, TArgument 参数)
在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite,ServiceProviderEngineScope 范围)
在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite callSite, TArgument 参数)
在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite,ServiceProviderEngineScope 范围)
在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite callSite, TArgument 参数)
在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite,ServiceProviderEngineScope 范围)
在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite callSite, TArgument 参数)
在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(IServiceCallSite 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_InternalServiceProvider()
在 Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependencies()
在 Microsoft.EntityFrameworkCore.DbContext.get_Model()
在 Microsoft.EntityFrameworkCore.Internal.InternalDbSet`1.get_EntityType()
在 Microsoft.EntityFrameworkCore.Internal.InternalDbSet`1.CheckState()
在 Microsoft.EntityFrameworkCore.Internal.InternalDbSet`1.get_EntityQueryable()
在 Microsoft.EntityFrameworkCore.Internal.InternalDbSet`1.System.Linq.IQueryable.get_Provider()
在 System.Linq.Queryable.Count[TSource](IQueryable`1 源)
在 C:\GitPlayGround\OracleConsoleApp\OracleConsoleApp\Program.cs:line 47 中的 OracleConsoleApp.Program.Main(String[] args)
我需要在这个复杂的结构中使用 FK 连接。我没有使用 Oracle 的经验,也没有使用 Oracle.EntityFrameworkCore (2.2.6, application core 2.2)
任何人都可以告诉我该怎么做,找不到开始解决这个问题的线索。