我们有一个SQL 2005/2008数据库,它有一个带有计算列的表。我们在NHibernate中使用计算列作为鉴别器,因此在数据库中使用它证明是非常有用的。
为了获得更快集成测试的好处,我希望能够针对内存数据库(如SQLite或SQL CE)运行集成测试。但我认为其中任何一个都不支持计算列。
我的问题还有其他解决办法吗?我可以完全访问数据库,如果有更好的解决方案可以修改它。我见过this post建议使用视图而不是计算列,这是最好的选择吗?
答案 0 :(得分:1)
在从SqlCe加载表时,我所做的是将计算列添加到DataTable。我将计算出的DataColumn的定义存储在数据库中存储的“配置”表中。我能够进行依赖于表的“链”的复杂计算,其中每个表执行更复杂函数的简化函数。 (链中的最后一个表包含结果。)我使用了SqlCe,因为一个包含5个表的行包含1500万行。 ADO.NET的内存数据集的数据太多。 (我要求在发布到服务器之前使用基于本地客户端的计算。)