【问题标题】:How to read a DBML file and map it into an object model in .NET?如何读取 DBML 文件并将其映射到 .NET 中的对象模型?
【发布时间】:2009-11-11 16:54:22
【问题描述】:

我打算编写一个代码生成器来生成 UI(表单、网格等)。由于我使用的是LINQ,因此我计划读取一个 DBML 文件以进行元数据提取。是否有一些 API 可以读取 DBML 对象模型(数据库、表、列和关联)?

我用Red Gate Software.NET Reflector 打开了SQLMetal.exe。它包含一个名为 LinqToSqlShared.DbmlObjectModel 的命名空间,它似乎包含了我读取 DBML 对象模型所需的一切。坏消息是:该命名空间不对外公开,​​所有类都被声明为“朋友”(或密封)。

再一次,是否存在将 DBML 读取到 .NET 中的对象模型的东西,例如 LinqToSqlShared.DbmlObjectModel 命名空间。?还是我自己写?

【问题讨论】:

    标签: linq code-generation object-model sqlmetal


    【解决方案1】:

    看看模型在L2ST4 项目中是如何读取的。您可以重复使用 T4 文件。

    【讨论】:

    • 太棒了!这正是我想做的。类数据为我做了很棒的工作。然而,在 .tt 文件中的实现需要一些人工交互,我真正想要的是创建一个命令行工具来自动生成类甚至用户界面。现在我已经将 dll 中的 [Data] 类隔离在 vb.net 中工作(这是我熟悉的语言;))我会让你知道它是怎么回事。感谢您提供如此出色的代码。您可以节省数周的工作时间。我欠你一杯啤酒。
    【解决方案2】:

    看看像Reegenerator 这样的工具。我们正在考虑将其作为 L2S 代码生成器的替代品,因为我们有一些特定的代码生成要求。

    【讨论】:

    • 我看过你所说的工具,我看过视频,看起来很有趣。但是,我将使用 T4 模板进行代码生成,这很容易实现和创建自定义代码。我唯一需要的是从 dbml 文件中提取对象模型。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    相关资源
    最近更新 更多