Чтобы сопоставить типы данных столбцов в базе данных и в классе ⇐ C#
Чтобы сопоставить типы данных столбцов в базе данных и в классе
Вопрос: какие типы столбцов следует использовать в базе данных и в классе для корректной работы приложения?
Проект: https://github.com/jhon65496/TypeDataCnsl01
Используется SQLite
Проблема со столбцами IndexValue, Discount. Цель — получить данные из базы данных и выполнить вычисления.
Если:
[*]в базе данных столбцы IndexValue, Discount имеют тип DECIMAL(10, 5),; [*]в классе Index поля IndexValue, Discount имеют тип string.
тогда проблем нет и я получаю данные.
Если
[*]в базе данных столбцы IndexValue, Discount имеют тип DECIMAL(10, 5); [*]в классе Index поля IndexValue, Discount имеют тип decimal.
Во время отладки я получаю сообщение об ошибке.
Ошибка:
Получатель звонка создал исключение
Ошибка возникает на линии
var items = indexesRepository.Items.toArray(); в методе Load Data() класса IndexesViewModel.
публичный класс IndexesViewModel { // ... // Код // ... публичная недействительность LoadData() { вар элементы = indexesRepository.Items.ToArray(); Индексы = новый ObservableCollection(элементы); } } Используется:
[*]Консоль .NET Framework; [*]System.Data.SQLite.
Код
Индекс класс:
[Таблица("Индексы")] индекс общественного класса { общественный ИНТ Id {получить; набор; } общедоступная строка Имя {get; набор; } общедоступная строка Описание {get; набор; } // десятичная дробь // плавать общественный десятичный IndexValue {get; набор; } общественная десятичная скидка {получить; набор; } } DbContextIndexes:
публичный класс DbContextIndexes: DbContext { статический SQLiteConnection sqliteConnection; public DbContextIndexes(): base("DefaultConnection") { } индексы public DbSet {get; набор; } } IndexesRepository:
class IndexesRepository { частный только для чтения DbSet _Set; DbContextIndexes _db; общедоступный IndexesRepository (DbContextIndexes db) { _дб = дб; _Set = _db.Set(); } частные элементы IQueryable; общедоступные виртуальные элементы IQueryable { получать { предметы = _Set; возврат товаров; } набор { предметы = значение; } } } IndexesViewModel:
публичный класс IndexesViewModel { ИндексыРепозиторий indexesRepository; DbContextIndexes DataContextApp; публичные индексыViewModel() { this.DataContextApp = новый DbContextIndexes(); indexesRepository = новый IndexesRepository(this.DataContextApp); ЗагрузитьДанные(); } частные индексы ObservableCollection; общедоступные индексы ObservableCollection { получить {возврат индексов; } набор { индексы = значение; } } публичная недействительность LoadData() { вар элементы = indexesRepository.Items.ToArray(); //
Вопрос: какие типы столбцов следует использовать в базе данных и в классе для корректной работы приложения?
Проект: https://github.com/jhon65496/TypeDataCnsl01
Используется SQLite
Проблема со столбцами IndexValue, Discount. Цель — получить данные из базы данных и выполнить вычисления.
Если:
[*]в базе данных столбцы IndexValue, Discount имеют тип DECIMAL(10, 5),; [*]в классе Index поля IndexValue, Discount имеют тип string.
тогда проблем нет и я получаю данные.
Если
[*]в базе данных столбцы IndexValue, Discount имеют тип DECIMAL(10, 5); [*]в классе Index поля IndexValue, Discount имеют тип decimal.
Во время отладки я получаю сообщение об ошибке.
Ошибка:
Получатель звонка создал исключение
Ошибка возникает на линии
var items = indexesRepository.Items.toArray(); в методе Load Data() класса IndexesViewModel.
публичный класс IndexesViewModel { // ... // Код // ... публичная недействительность LoadData() { вар элементы = indexesRepository.Items.ToArray(); Индексы = новый ObservableCollection(элементы); } } Используется:
[*]Консоль .NET Framework; [*]System.Data.SQLite.
Код
Индекс класс:
[Таблица("Индексы")] индекс общественного класса { общественный ИНТ Id {получить; набор; } общедоступная строка Имя {get; набор; } общедоступная строка Описание {get; набор; } // десятичная дробь // плавать общественный десятичный IndexValue {get; набор; } общественная десятичная скидка {получить; набор; } } DbContextIndexes:
публичный класс DbContextIndexes: DbContext { статический SQLiteConnection sqliteConnection; public DbContextIndexes(): base("DefaultConnection") { } индексы public DbSet {get; набор; } } IndexesRepository:
class IndexesRepository { частный только для чтения DbSet _Set; DbContextIndexes _db; общедоступный IndexesRepository (DbContextIndexes db) { _дб = дб; _Set = _db.Set(); } частные элементы IQueryable; общедоступные виртуальные элементы IQueryable { получать { предметы = _Set; возврат товаров; } набор { предметы = значение; } } } IndexesViewModel:
публичный класс IndexesViewModel { ИндексыРепозиторий indexesRepository; DbContextIndexes DataContextApp; публичные индексыViewModel() { this.DataContextApp = новый DbContextIndexes(); indexesRepository = новый IndexesRepository(this.DataContextApp); ЗагрузитьДанные(); } частные индексы ObservableCollection; общедоступные индексы ObservableCollection { получить {возврат индексов; } набор { индексы = значение; } } публичная недействительность LoadData() { вар элементы = indexesRepository.Items.ToArray(); //
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение