2

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

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

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

ответ

1

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