devart oracle 9.3- entity framework 7 (or core 1) Mapping can't recognize decimal at visual studio 2017
devart oracle 9.3- entity framework 7 ( or core 1) Mapping can't recognize decimal at visual studio 2017
我正在开发 .Net 核心 class 库 project.I 使用 Devart entity framework 核心来连接 oracle 数据库。我在 link 使用 devart 的 oracle 映射方法
http://blog.devart.com/entity-framework-core-1-entity-framework-7-support.html
当table的列类型为字符串时,我可以成功获取数据。但是,如果 table 的列类型是十进制,编译器会给我以下错误:
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
}
抱歉我的英语不好。
感谢您的报告。我们已重现该问题,并会在问题解决后通知您。
作为解决方法,请使用:
optionsBuilder.UseOracle("oracle_connection_string");
modelBuilder.Entity<MyTable>().Property<decimal>(x => x.ID).HasColumnName(@"ID").HasColumnType(@"NUMBER").IsRequired().ValueGeneratedOnAdd();
我正在开发 .Net 核心 class 库 project.I 使用 Devart entity framework 核心来连接 oracle 数据库。我在 link 使用 devart 的 oracle 映射方法 http://blog.devart.com/entity-framework-core-1-entity-framework-7-support.html
当table的列类型为字符串时,我可以成功获取数据。但是,如果 table 的列类型是十进制,编译器会给我以下错误:
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
}
抱歉我的英语不好。
感谢您的报告。我们已重现该问题,并会在问题解决后通知您。
作为解决方法,请使用:
optionsBuilder.UseOracle("oracle_connection_string");
modelBuilder.Entity<MyTable>().Property<decimal>(x => x.ID).HasColumnName(@"ID").HasColumnType(@"NUMBER").IsRequired().ValueGeneratedOnAdd();