将表添加到Entity Framework模型会导致RPC“参数太多”错误

时间:2011-11-01 14:06:34

标签: entity-framework-4 entity-framework-designer

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

  

由于以下异常,无法生成模型:'An   执行命令定义时发生错误。看到内心   细节例外。

     

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

     

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

如何解决/解决此问题?

1 个答案:

答案 0 :(得分:2)

根据Microsoft的支持,这是设计人员如何区分模型中已有的表列表和数据库中的表列表的结果。

有三种主要方法可以解决这个问题:

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

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

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

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

  3. 从模型中删除表格

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