2

从设计器更新 EDMX 模型以在大型数据库上添加表时,输出窗口中返回错误:

由于以下异常,无法生成模型:'执行命令定义时发生错误。有关详细信息,请参阅内部异常。

传入的表格数据流 (TDS) 远程过程调用 (RPC) 协议流不正确。此 RPC 请求中提供的参数过多。最大值为 2100。'。从数据库加载元数据耗时 00:00:04.5149496。生成模型耗时 00:00:14.0108568。由于以下异常,无法生成模型:'执行命令定义时发生错误。有关详细信息,请参阅内部异常。

传入的表格数据流 (TDS) 远程过程调用 (RPC) 协议流不正确。此 RPC 请求中提供的参数过多。最大值为 2100。'。从数据库加载元数据耗时 00:00:04.2847682。生成模型耗时 00:00:06.1297751。

如何解决/解决这个问题?

4

1 回答 1

2

根据微软的支持,这是设计者如何区分模型中已有的表列表和数据库中的表列表的设计限制的结果。

有三个主要选项可以解决此问题:

  1. 创建一个数据库用户,该用户有权仅查看模型所需的表。

    此选项的缺点是用户的权限必须维护模型维护(例如,对于添加到模型的每个表,必须授予“模型维护用户”查看表的权限)(注意,在更改用户后连接配置,可能需要退出设计器和/或 VS 才能生效)

  2. 将 EDMX 拆分为多个更小的模型

    在某些情况下,这可以提高大型模型的性能,但必须仔细选择边界以避免从跨模型的表中进行选择时出现问题。

  3. 从模型中删除表

    通常,这只是模型中已经存在上下文不必要的表的一个选项。

于 2011-11-01T14:12:29.043 回答