netTiers数据库架构向后兼容性

时间:2012-02-06 23:44:28

标签: .nettiers

我发现netTiers生成的代码依赖于一个确切的数据库模式,并且对变体非常无情。例如,将列添加到现有表中 - 如果在表的中间某处添加了列,则除非重新编译netTiers,否则将在运行时看到强制转换错误。这是因为列是按顺序访问的,而不是按名称访问的。 (通过更改日志,我看到这是作为性能改进完成的)

这在过去并不是一个问题,但在我目前的项目中,我们正在尝试构建一个零停机升级系统。我们面临的挑战是数据库升级,如果我们能够在不影响代码的情况下更新数据库,那就太棒了。

是否有人使用过netTiers有类似的问题或是否有类似的要求?

更改模板以按名称访问列是否更能容忍以前的模式版本?如果是这样,对我来说,我认为这对于表现来说是一个小小的打击(这里引用了3%DataReader ordinal-based lookups vs named lookups

1 个答案:

答案 0 :(得分:0)

如您所知,.NetTiers在DataReader中使用基于序数的查找。让.NetTiers很好地发挥作用的唯一方法是始终在现有表的末尾添加新列,而不是重新构造表字段顺序。

通过执行此操作,您的v1代码仍将对表格末尾附加新列的表格起作用,而您的v2代码将使用新添加的内容。