【问题标题】:How do I exclude the Scheme name from SqlMetal generated Objects?如何从 SqlMetal 生成的对象中排除方案名称?
【发布时间】:2011-04-20 04:14:09
【问题描述】:

SqlMetal 正在创建对象名称,例如...

观点:

Sales.ProductDescription

被创建为:

Sales_ProductDescription

理想情况下,SqlMetal 会在命名空间 .Sales. 下创建 ProductDescription 类,但这可能要求太多。那么无论如何要让它创建没有sheme前缀的类,例如“ProductDescription”。

谢谢,
贾斯汀

【问题讨论】:

    标签: asp.net linq sqlmetal


    【解决方案1】:

    这将涉及在生成 DBML 文件后对其进行一些修改。但是,就可维护性而言,这可能会限制您在架构更改时快速重新生成的能力。

    如果您有一个不稳定的架构,您可以查看这个collection of powershell scripts I wrote some time ago,它将处理对 DBML 的此类更改。它需要一个 XML 文件作为输入。警告:代码库中的示例可能已过时,但脚本确实有效 - 我仍在使用它们。

    【讨论】:

    • 如果您只想在模型之间包含一些有限的链接,您也可以使用这些脚本将模型拆分为几个单独的命名空间 - 尽管我在使用共享实体持久化多个模型方面的里程有限。
    【解决方案2】:

    SqlMetal 有一个可选参数来包含命名空间。默认值为无命名空间。查看 MSDN 上的此链接。

    http://msdn.microsoft.com/en-us/library/bb386987.aspx

    【讨论】:

    • 我已经使用了命名空间参数。问题是如何从类名中排除方案名称,设置命名空间参数对其没有影响。
    • 我明白了。不幸的是,我相信这是为 SqlMetal 设计的行为。Dbo 是唯一被忽略的模式。您可以将该视图的架构更改为 dbo。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    • 2023-03-27
    • 2013-06-10
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 2018-08-09
    相关资源
    最近更新 更多