【问题标题】:Generate constants for database table names and fields?为数据库表名和字段生成常量?
【发布时间】:2011-09-14 09:05:44
【问题描述】:

有没有办法为表名和字段自动生成常量?类似于 T4MVC 对文件和文件夹所做的操作。

我有一些使用字段名称的 sp,如果能够自动生成字符串常量,那就太好了。

【问题讨论】:

  • 你能举例说明你的意思吗?您想要一个基于某种模板创建表的存储过程?
  • 您打算使用哪种语言来生成常量:c# ot t-sql?
  • @mishau 是 c# 还是 t-sql 都没有关系。然而,它应该生成包含常量的有效 c# 类。
  • @adamleerich 它可以是存储过程或程序或任何东西。它应该枚举表和字段名,并生成有效的 c# 类,其中包含表名和字段名的常量。
  • @Carl R 你真的不应该这样做。除了一两个非常罕见的例外(例如需要使用在编译时未知的数据库元数据的应用程序)之外,您的客户端应用程序需要表名的唯一原因是您直接嵌入 SQL在你的 C# 代码中,这是一个很大的禁忌。

标签: c# sql sql-server ado.net


【解决方案1】:

我不确定我是否完全理解您的问题,但CodeSmith 是更好的代码生成工具之一,通常与 C#/SQL Server DB 结合使用。

它允许您通过加载模式(SQL 数据库或手工制作的 XML 文件)来生成代码,并将它们用作各种模板的输入。 CodeSmith 本身带有一些相当不错的模板,用于各种事情,例如为您指定的所有表创建完整的 CRUD 存储过程,或 C# 中的整个数据访问层(NetTiers、CSLA 等)。为几乎所有你能想到的东西创建自己的模板相对容易,而且我已经看到了从表中的实际值或表本身生成枚举的实现。

唯一的问题是 CodeSmith 不是免费的,但绝对值得一看。

【讨论】:

  • 如果您想要免费的解决方案,我会查看 t4 模板。您也可以根据您使用 codedom 的级别相当轻松地做到这一点。如果您要生成更复杂的代码,则应使用第三方解决方案,例如 codesmith。
猜你喜欢
  • 1970-01-01
  • 2021-09-23
  • 2012-07-27
  • 1970-01-01
  • 1970-01-01
  • 2012-06-14
  • 2012-10-25
  • 2013-12-01
  • 1970-01-01
相关资源
最近更新 更多