entityframework 유창 API를 사용하는 첫 번째 데이터 액세스 방법 인 오라클 데이터베이스의 Dev Art가 오류가 발생했습니다.ORA-01450 : 최대 키 길이 (6398) 초과 (Devart.Data.Oracle.OracleException)
실제 테이블 디자인 :
이 쿼리 실패.
CREATE TABLE DADeskSettings (
UserID NVARCHAR2(2000) NOT NULL,
Password NVARCHAR2(2000) NOT NULL,
DADeskURL NVARCHAR2(2000) NOT NULL,
WebURL NVARCHAR2(2000) NOT NULL,
IsDADeskSettings NUMBER(1) NOT NULL,
DAType VARCHAR2(4 CHAR) NOT NULL,
UPDATEDADESK NUMBER(1) NOT NULL,
isshortseavoy NUMBER(1) NULL,
CreatedBy VARCHAR2(8 CHAR) NULL,
UpdatedBy VARCHAR2(8 CHAR) NULL,
CONSTRAINT PK_DADeskSettings PRIMARY KEY (UserID, Password, DADeskURL, WebURL, IsDADeskSettings, DAType)
)
ORA-01450: maximum key length (6398) exceeded
엔티티 프레임 워크 edmx 모델 + devArt와 함께 작동합니다. 어떤 제안?
var dummy2 = ContextFactory.Db.GetQuery<OPRPortCall>().Select(x=>x.AccountCode).FirstOrDefault(); //this is one of the line.
*** Client Application Says ***
- ORA-01450: maximum key length (6398) exceeded (Devart.Data.Oracle.OracleException)
- The type initializer for 'Server.ManagerService.Registers.LookupVmSvc' threw an exception. (System.TypeInitializationException)
- Exception has been thrown by the target of an invocation. (System.Reflection.TargetInvocationException)
Stacktrace
*** Client Application Says ***
at Devart.Data.Oracle.bh.d(Int32 A_0)
at Devart.Data.Oracle.de.a(Int32 A_0, z A_1)
at Devart.Data.Oracle.OracleCommand.InternalExecute(CommandBehavior behavior, IDisposable disposable, Int32 startRecord, Int32 maxRecords, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
at Devart.Data.Oracle.OracleCommand.ExecuteNonQuery()
at Devart.Common.Entity.ej.a(DbConnection A_0, Nullable`1 A_1, b3 A_2)
at Devart.Common.Entity.ej.a(DbConnection A_0, Nullable`1 A_1)
at Devart.Data.Oracle.Entity.OracleEntityProviderServices.DbCreateDatabase(DbConnection connection, Nullable`1 commandTimeout, StoreItemCollection storeItemCollection)
at System.Data.Entity.Internal.DatabaseOperations.Create(ObjectContext objectContext)
at System.Data.Entity.Internal.DatabaseCreator.CreateDatabase(InternalContext internalContext, Func`3 createMigrator, ObjectContext objectContext)
at System.Data.Entity.Database.Create(DatabaseExistenceState existenceState)
at System.Data.Entity.CreateDatabaseIfNotExists`1.InitializeDatabase(TContext context)
at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action)
at System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization()
at System.Data.Entity.Internal.RetryAction`1.PerformAction(TInput input)
at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action`1 action)
at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
at System.Data.Entity.Internal.Linq.InternalSet`1.AsNoTracking()
at System.Data.Entity.Infrastructure.DbQuery`1.AsNoTracking()
at Server.Manager.DataAccess.VMEntities.GetQuery[T](Boolean tracking)
온 오류가 발생 질의가 추가
다른 가능성? – anand
코드 우선 접근법을 사용하고 있습니다 (데이터베이스 구조는 런타임에 생성됩니다). 그렇지 않습니까? 문제를 해결하는 두 가지 다른 방법이 있습니다) 1 수정을 얻을 수 9.4.280 이상으로 업그레이드는 https://www.devart.com/dotconnect/oracle/revision_history.html 9.4.280 (25) -May-17 길이 제한없이 정의되고 PK, FK, 색인에 참여하는 문자열 열이있는 EF 핵심 모델의 지원이 향상되었습니다. 2) 길이 길이를 모두 매핑하여 전체 길이 PK에 참여하는 열은 6398 한도를 초과하지 않습니다 – Devart