动态生成 Microsoft SQL 和其他数据库的 C# 数据访问代码






3.45/5 (13投票s)
使用此工具,可为 Microsoft SQL 及其他数据库动态生成 C# 数据层代码(CRUD 函数)。
引言
我已提供整个程序及其代码。请使用以下链接进行下载。
使用程序
本节是“快速入门指南”,因为上面的 Word 文档(链接)对用法进行了更详细的说明。我鼓励您至少下载 Word 文档,以便更详细地了解该程序。
不过,这是一个不错的开始。
SQLCODEGEN.EXE 是一个命令行程序。它使用命令行上的输入来启动代码生成过程。
这样调用它:
sqlcodegen -tables Customer,Address -classtemplate FullAccess
-server homesqlserver -database TestDB1
在这种情况下,sqlcodegen
将为 Custo
mer 和 Address
表生成完整的 CRUD,分别创建名为 Customer
和 Address
的类,并将它们保存在名为 Customer.cs 和 Address.cs 的文件中。它通过 -table
参数得知这一点。
代码将基于一个名为“FullAccess
”的模板,如 -classtemplate 参数所示。(sqlcodegen.exe.config 文件指定了模板的位置以及用于模板的源。)
服务器名为 homesqlserver
,数据库名为 TestDB1
,如 -server 和 -database 参数所示。
关注点
SQLCODEGEN.EXE 是一个非常灵活、易于配置的程序。
该程序由命令行输入和配置文件数据驱动。它使用模板和“片段”文件以及 XML 文件来控制输出内容。模板和片段文件是文本文件。您可以使用任何文本编辑器轻松地更改模板和片段以满足您的需求。
除了模板和片段之外,SQLCODEGEN.EXE 还使用一些 XML 文件进行额外配置。虽然我将参考 Word 文档了解这些文件的更多详细信息,但我还是想通过指出这些文件的存在来引起您的注意。我鼓励您探索该程序,看看如何根据您的需求修改配置。
最后一点:我公开了几个接口,允许您扩展 SQLCODEGEN.EXE 的功能。这些接口定义在 SQLCODEGENSUPPORT.DLL 中。其中一个接口允许您扩展 SQLCODEGEN.EXE 以处理不同的数据库。另一个接口允许您自定义部分代码生成,以便生成的输出符合您自己或您组织的编码标准。
最后说明
只有一个小提示:虽然我参考了 Word 文档以获取更多详细信息,但我理解该文档并非完全完整。但是,文档中有大量有用的信息可以帮助您开始。结合源代码,并通过联系我,我相当确信您可以立即开始使用 SQLCODEGEN.EXE。
虽然我不是代码生成的忠实粉丝,但我相信它在软件工程中占有一席之地。它非常适合生成重复性和单调的代码,例如 CRUD(创建、检索、更新、删除)功能。它可以帮助减少编码错误,并节省您处理有趣事情的时间,例如处理业务需求。
我知道市面上还有其他工具可以做同样的事情,也有其他人制作了自己的代码生成工具。但我喜欢编写自己的工具。而且,我不想花费大量金钱或时间来学习商业代码生成软件。
因此,我开发了 SQLCODEGEN.EXE 来生成 C# 数据访问代码。
按原样,它仅适用于 Microsoft SQL Server。但是,如上所述以及在 Word 文档中,也有方法可以使其适用于其他数据源。
更新
- 2007-11-13:我开发 SQLCODEGEN.EXE 时使用的是 Microsoft SQL 2005。我知道早期 Microsoft SQL 版本中的系统表架构不同,因此此工具(直接从 zip 文件中解压或编译后)可能无法用于更早版本的 Microsoft SQL。不过,事情并非没有转机!您可以使用包含的示例所示,通过实现自己的
ITableInquiry
接口来替代使用默认实现。 - 2008-12-19:仅更新了源代码