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();