devart oracle 9.3- инфраструктура сущностей 7 (или ядро ​​1) Картографирование не распознает десятичную дробь в visual studio 2017

Я работаю над проектом библиотеки классов.Net Core. Я использую ядро ​​Entity Framework для подключения базы данных Oracle. Я использую методы отображения оракула Devart по ссылке http://blog.devart.com/entity-framework-core-1-entity-framework-7-support.html

Я могу получить данные успешно, когда тип столбцов таблицы является строкой. Но, если тип столбцов таблицы десятичный, complier выдает ошибку ниже:

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
         }

Извините за мой низкий английский.

1 ответ

Решение

Спасибо за ваш доклад. Мы воспроизвели проблему и сообщим вам, когда она будет устранена.

В качестве обходного пути, пожалуйста, используйте:

optionsBuilder.UseOracle("oracle_connection_string");
modelBuilder.Entity<MyTable>().Property<decimal>(x => x.ID).HasColumnName(@"ID").HasColumnType(@"NUMBER").IsRequired().ValueGeneratedOnAdd();
Другие вопросы по тегам