C# 构建SQLDDL语句:哪些模式是合适的?

C# 构建SQLDDL语句:哪些模式是合适的?,c#,.net,sql,design-patterns,C#,.net,Sql,Design Patterns,我在某处看到了用于创建DMLSQL语句的构建器模式。我想知道,哪种模式更适合构建SQLDDL语句 我考虑的是简单的程序数据库工具,仅用于自学目的,它将动态创建简单的SQLDDL语句。我不确定我应该考虑哪些模式。 工厂模式允许我将客户机代码与具体的数据库提供程序类库解耦。我想这是一个明确的选择,如果我错了,请纠正我。decorator模式是我构建sql语句的第一选择,但在编写了一些示例并阅读了相关内容之后,我几乎可以肯定,我不应该使用decorator,因为我在构建对象,而不是装饰已经创建的对象

我在某处看到了用于创建DMLSQL语句的构建器模式。我想知道,哪种模式更适合构建SQLDDL语句

我考虑的是简单的程序数据库工具,仅用于自学目的,它将动态创建简单的SQLDDL语句。我不确定我应该考虑哪些模式。

工厂模式允许我将客户机代码与具体的数据库提供程序类库解耦。我想这是一个明确的选择,如果我错了,请纠正我。decorator模式是我构建sql语句的第一选择,但在编写了一些示例并阅读了相关内容之后,我几乎可以肯定,我不应该使用decorator,因为我在构建对象,而不是装饰已经创建的对象

所以。。在这种情况下,我应该考虑哪些模式,为什么它们好/更好?< /P>
更新以澄清。

数据库工具的核心需要以独立于数据库的形式表示它所拥有的知识,到时候,特定于数据库的代码将接管并将这些知识转换为特定于数据库的DDL

您可能需要某种依赖注入来实现这一点。其基本思想是:应用程序的核心只与接口一起工作,除了在这些接口中声明的内容之外,永远不知道任何事情。在运行时,实现这些接口的特定于数据库的对象被实例化并注入核心。创建而不是盲目地调用它们,就像它会调用实现相同接口集的任何其他对象集一样

如果需要支持另一个DB,JUT会生成另一组实现这些接口的类,并在运行时实例化它们


当然,这只是一个理论。您会发现不同的数据库系统之间存在许多细微差别,我怀疑您很难用一种完全通用的方式来表示所有这些……

除非您正在编写数据库工具,否则您的应用程序需要动态编写DDL的情况相对较少。你确定这是最合适的设计吗?是的,我在考虑DB工具,是的,DDL语句将动态创建。