数据读取器不兼容...成员在数据读取器中没有相应的列

eri*_*nql 10 wpf entity model sql-server-2008 visual-studio-2008

使用VS 2008,SQL Server 2008和WPF 3.5,我对模式进行了一些更改并更新了模型.它编译并运行正常,直到客户端应用程序调用特定实体,我得到以下(实际名称替换):

The data reader is incompatible with the specified '<Model>.<ViewBasedEntity>'. A member of the type, '<Property>', does not have a corresponding column in the data reader with the same name.
Run Code Online (Sandbox Code Playgroud)

我在服务应用程序中搜索了相关的实体和属性名称,尝试在表格地图中重命名属性,似乎是其他一些报告相同的错误,但似乎无法找到及时答案... .

...有没有人知道如何追踪这一点,如果有的话,是否有一个修复或方法可以遵循以避免将来?

Cal*_*her 12

您也可以更新功能导入,而不是更新视图:

  • 转到"模型浏览器"窗口
  • 展开EntityContainer
  • 在Mapping Details窗口中打开Function Import
  • 如果实体名称(左列)与预期的字段名称(右列)不匹配,则可以更改右侧列以匹配实际调用的返回字段.


Jam*_*ieA 5

我有一个类似的问题,产生相同的错误信息 - 问题是由proc返回的列名称包括一个空格.

创建复杂类型时,[my column]创建为my_column.

然后当执行proc时ExecuteStoreQuery,my_column数据读取器中不存在,因为proc仍然返回[my column].

解决方案:从proc列名称中删除空格,然后为导入的函数重新创建复杂类型.


eri*_*nql 4

好的 - 这是瘦的:

该特定视图被设置为存储过程的返回类型,该存储过程必须在模型的实体容器中设置为函数导入。

我更新了该视图以适应新的报告要求,但没有意识到它对函数导入的重要性。附加字段不是为此目的而识别的数据集的一部分,因此无法找到其中任何字段的匹配项。

因此,我复制了该视图并在其后缀为“Report”,然后将原始视图恢复为预期的返回字段集。

瞧!