【问题标题】:netTiers database schema backwards compatibilitynetTiers 数据库模式向后兼容性
【发布时间】:2012-02-06 23:44:27
【问题描述】:

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

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

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

更改模板以按名称访问列是否更能容忍以前的架构版本?如果是这样,对我来说,我认为这对性能有一点影响(这里引用了 3% DataReader ordinal-based lookups vs named lookups

【问题讨论】:

    标签: .nettiers


    【解决方案1】:

    如您所述,.NetTiers 在 DataReader 中使用基于序数的查找。让 .NetTiers 正常运行的唯一方法是始终将新列添加到现有表的末尾,并且永远不要重组表字段顺序。

    通过这样做,您的 v1 代码仍将适用于在表末尾附加了新列的表,而您的 v2 代码将适用于新添加的列。

    【讨论】:

      猜你喜欢
      • 2013-04-19
      • 1970-01-01
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多