2017-03-29 12 views
1

.NETコア・クラス・ライブラリ・プロジェクトで作業しています。Devacleエンティティ・フレームワーク・コアを使用してOracleデータベースを接続します。私はリンクでdevartのOracleマッピング方法を使用しています。 http://blog.devart.com/entity-framework-core-1-entity-framework-7-support.htmldevart oracle 9.3-エンティティ・フレームワーク7(またはコア1)ビジュアル・スタジオでマッピングが10進数を認識できない2017

テーブルの列の型が文字列の場合、データを正常に取得できます。テーブルの列の型が小数である場合でも、コンパイラは、下の私にエラーを与える:

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)'. 

私のマッピング機能は次のとおりです。私の低い英語のため申し訳ありません

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 
     } 

答えて

0

ご報告いただきありがとうございます。私たちはこの問題を再現し、修正されたときに通知します。

回避策として

、使用してください:

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

EFコアの値型特性を有するForOracleHasColumnNameとForOracleHasColumnType ModelBuilderの方法を用いたバグが修正されている:http://forums.devart.com/viewtopic .php?f = 1&t = 35436。 – Devart

関連する問題