Существуют ли какие-либо базы данных в памяти, которые поддерживают вычисляемые столбцы? - PullRequest
2 голосов
/ 11 сентября 2009

У нас есть база данных SQL 2005/2008, в которой есть таблица с вычисляемым столбцом. Мы используем вычисляемый столбец в качестве дискриминатора в NHibernate, поэтому его наличие в базе данных оказывается очень полезным.

Чтобы воспользоваться преимуществами более быстрых интеграционных тестов, я хотел бы иметь возможность запускать наши интеграционные тесты с базой данных в памяти, такой как SQLite или SQL CE. Но я не думаю, что кто-либо из них поддерживает вычисляемый столбец.

Есть ли другие варианты решения моей проблемы? У меня есть полный доступ к базе данных, и я могу изменить ее, если есть лучшее решение. Я видел этот пост , который предлагает использовать представление вместо вычисляемого столбца, это лучшая альтернатива?

1 Ответ

1 голос
/ 12 сентября 2009

То, что я сделал, добавило вычисляемый столбец в DataTable при загрузке таблицы из SqlCe. Я сохранил определение вычисляемого DataColumn в таблице «конфигурации», хранящейся в базе данных. Я мог выполнять сложные вычисления, которые зависели от «цепочки» таблиц, где каждая таблица выполняла более простую функцию более сложной функции. (Последняя таблица в цепочке содержала результаты.) Я использовал SqlCe, потому что одна таблица из пяти содержала 15 миллионов строк. Слишком много данных для наборов данных в памяти ADO.NET. (У меня было требование использовать локальные клиентские вычисления перед отправкой на сервер.)

...