有没有办法在不使用 codesmith 的情况下向 NetTiers 模型添加新列?

Is there any way to add new column to an NetTiers model without using codesmith?

我必须更改一些使用 NetTiers 模板由 CodeSmith 生成的遗留代码。我需要添加一些新列,但我没有原始模板,也没有 CodeSmith 许可证。有什么方法可以不使用 CodeSmith 来添加它们吗?

是的,你绝对可以。 Nettiers无非就是自动生成c#代码,生成的代码没有什么特别之处,大家可以随意修改。

也就是说,手动修改您所说的类型会花费一些时间。如果这不是一次性的,我强烈建议获取 Code Smith 并尝试重新生成。

为了手动完成您的目标,您需要修改实体 class 本身,还需要修改您想要使用新列的所有获取和保存方法,最后是过程 xml 和存储过程本身。就好像整个DAL都是用c#手动写的一样。

您的另一个选择是将新列添加到 table 的末尾,然后使用其他一些 DAL 来管理其中的数据。只要新列只添加到 table 的末尾,nettiers 就会完全忽略它们。

如果您的 nettiers 使用存储过程来访问数据,那么只要存储过程中的列位置不更改列位置本身就没有关系。不过,我还没有测试过这是否适用于 nettiers 构建的参数化查询。