【问题标题】:reverse engineer/create c# interface from sql server table逆向工程/从 sql server 表创建 c# 接口
【发布时间】:2011-04-15 16:49:25
【问题描述】:

有谁知道我可以指向我的 sql server 数据库并读取架构并从表中生成 c# 接口类的工具?

例如 - 假设我有一个名为“客户”的表,其中包含“名称”列、“地址”列和“电话”列,它将生成一个 ICustomer.cs 文件,其中包含字符串名称 {get;set;} 字符串地址 {get;set;} 和 int Phone {get;set;}

我正在使用“不完整”的代码生成器,它不会生成这些接口。

【问题讨论】:

  • httanks 对于所有的答案,但我想我已经在 Resharper 'Extract Interface' 中找到了答案

标签: c# code-generation reverse-engineering model-driven-development


【解决方案1】:

【讨论】:

    【解决方案2】:

    我不知道有什么工具可以做到这一点,但我确信你可以很容易地自己做到这一点!

    设置一个包含类头的字符串,另一个包含页脚。

    然后,创建一个名为您的表格的新文本文件。

    将标题写入文件。

    对于正文,只需编写一个循环读取您的表,提取字段的名称和类型,并使用该信息编写一个接口。

    最后,将页脚写入文件。

    你的全新界面就到这里了!

    (因为接口只是纯文本文件,所以真的很简单...)

    【讨论】:

    • 或者使用复制/粘贴更好,只需在表的设计视图中从 SQL Server Management Studio 复制。
    【解决方案3】:

    您可以使用SQLMetal.exe 来完成部分工作。听起来你想要一个接口,但这会创建具体的类。用interface 查找/替换class 并修改名称是一项小任务。

    • C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\SqlMetal.exe 或打开 Visual Studio 命令提示符。
    • 用法:sqlmetal /server:myserver /database:myDB /user:myUser /pwd:myPwd /language:csharp /code:myDB.cs

    SQLMetal 的 MSDN 页面上有更多选项。

    【讨论】:

      【解决方案4】:

      您需要一个允许您自定义代码生成模板的工具。你考虑过Enterprise Architect,还是CodeSmith

      还有很多其他的 - 您甚至可能想要选择模型驱动架构。在 UML 中设计您的解决方案并从 UML 模型生成数据库和代码。为此,您可以使用组合工具,例如 MagicDraw 和 Maven。

      【讨论】:

        【解决方案5】:

        我想我可以使用 Resharpers 'Extract Interface' 重构,因为我已经生成了类。

        感谢大家的意见

        【讨论】:

          【解决方案6】:

          我的 SqlSharpener 项目可让您在 设计时 解析 SQL 文件以创建元模型,然后您可以使用它来生成您喜欢的任何类型的代码在 T4 模板中。例如,您可以创建 Entity Framework Code First 实体。

          【讨论】:

            【解决方案7】:

            你也可以使用MyGeneration

            【讨论】:

              猜你喜欢
              • 2011-01-01
              • 2019-05-10
              • 1970-01-01
              • 2012-05-01
              • 2017-06-29
              • 1970-01-01
              • 1970-01-01
              • 2016-09-27
              • 2011-12-13
              相关资源
              最近更新 更多