2017-03-29 1 views
1

.Net 핵심 클래스 라이브러리 프로젝트에서 작업 중입니다. Devart 엔터티 프레임 워크 코어를 사용하여 Oracle 데이터베이스를 연결합니다. 링크에서 devart의 오라클 매핑 방법을 사용합니다. http://blog.devart.com/entity-framework-core-1-entity-framework-7-support.htmldevart oracle 9.3- 엔터티 프레임 워크 7 (또는 코어 1) 매핑이 Visual Studio에서 십진수를 인식하지 못합니다. 2017

테이블의 열 유형이 문자열 일 때 데이터를 성공적으로 가져올 수 있습니다. 내 낮은 영어

private void MyTableMapping(ModelBuilder modelBuilder) 
     { 
      modelBuilder.Entity<MyTable>().ForOracleToTable(@"MyTable"); 
      modelBuilder.Entity<MyTable>().Property<string>(x => x.SIRKETID).ForOracleHasColumnName(@"SIRKET_ID").ForOracleHasColumnType(@"VARCHAR2").ValueGeneratedNever().HasMaxLength(2);//this line is ok 
      modelBuilder.Entity<MyTable>().Property<decimal>(x => x.ID).ForOracleHasColumnName(@"ID").ForOracleHasColumnType(@"NUMBER").IsRequired().ValueGeneratedOnAdd();//this line gives error 
     } 

죄송합니다 :

Severity Code Description Project File Line Suppression State 
Error CS0452 The type 'decimal?' must be a reference type in order to use it as parameter 'TEntity' in the generic type or method 'OraclePropertyBuilderExtensions.ForOracleHasColumnName<TEntity>(PropertyBuilder<TEntity>, string)'. 

내 매핑 기능은 다음과 같습니다 테이블의 컬럼의 타입이 소수 인 경우 그러나, 컴파일러는 아래에 나에게 오류를 제공합니다.

답변

0

감사합니다. 우리는이 문제를 재현했으며 문제가 해결되었을 때 알려줍니다.

해결책으로

사용주세요

optionsBuilder.UseOracle("oracle_connection_string"); 
modelBuilder.Entity<MyTable>().Property<decimal>(x => x.ID).HasColumnName(@"ID").HasColumnType(@"NUMBER").IsRequired().ValueGeneratedOnAdd(); 
+0

EF 코어 내의 값 형 특성을 갖는 모델 빌더 ForOracleHasColumnType ForOracleHasColumnName 및 방법을 사용하는 데 문제를 해결한다 : http://forums.devart.com/viewtopic .php? f = 1 & t = 35436. – Devart

관련 문제