【问题标题】:Update model (edmx) with system tables (SYS.xxx) - Sybase使用系统表 (SYS.xxx) 更新模型 (edmx) - Sybase
【发布时间】:2011-12-25 06:15:05
【问题描述】:

When selecting 'update model from database' none of the system tables (SYS. schema) is available from the list of tables.

如何将系统表添加到我的 EF 模型。

Sybase (ASA12) 是我使用的数据库平台。

【问题讨论】:

  • 我不会将此作为答案发布,因为这只是我的猜测 - 当使用 SQL Server EF 设计器/提供程序时,总是过滤 sys 功能。这可以与 Sybase 相同。当您将 EDMX 作为 XML 打开时,您可以尝试手动映射它们(= 没有设计器支持)。
  • 那么我每次生成/更新模型时都必须“重做”编辑。
  • 编辑 EDMX 后,您将不会使用生成/更新模型 - 您将手动维护它。
  • 是的,这可能会解决我的问题,但由于模型非常“活跃”,因此不是一个选择。谢谢:)

标签: entity-framework sybase


【解决方案1】:

作为一种解决方法,我在系统表上创建了一个视图。 然后它就可用,并且可以由 edmx 生成器自动更新

【讨论】:

    【解决方案2】:

    我创建了一个脚本,将所有目录视图(即 sys.*)重新创建为用户模式中的视图:

    注意:这是 T-SQL 和 SQL Server 对象名称,但我相信您可以将该概念适应 Sybase。

    SELECT
        'CREATE VIEW ' + 'dpc.' + name + ' AS SELECT * FROM ' + 'sys.' + name + char(13) + char(10) + ' GO' + char(13) + char(10)
    FROM 
        sys.all_objects 
    WHERE
        type = 'v' 
        and is_ms_shipped = 1
        and schema_name(schema_id) = 'sys'
    ORDER BY 
        name
    

    然后我运行上述查询的脚本输出,将每个 sys.x 视图复制到一个新的 dpc.x 视图,并将所有 dpc.* 视图添加到我的 EDMX 模型中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2021-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多