1

我收到了上述错误消息,希望有人可以为我翻译。我通过一些搜索在网上找到的唯一参考是代码块的引用,没有解释。它们看起来像是相关的,但实际上并没有提供任何帮助来弄清楚发生了什么。

背景:我试图在 mvc2/C#/EF/SQL 堆栈中维护一大块遗留代码,它使用这些物化器(可能还有阅读器)作为与数据库通信的一种方式。我基本上不了解物化器是如何工作的,除了“哦,这似乎有点像它在做这样的事情”,你只是从代码本身的通读中得到的。我必须对使用物化器的表/对象集之一的数据库进行一些更改。我适当地调整了物化器(据我所知),大量欺骗现有代码,为添加的列/属性添加等效行,并删除那些已删除的行。我还在 c# 类中注释掉了一个名为 TryParse 的函数,因为据我所知,没有人使用它,而且我们 重新尝试减少一点杂物。它现在似乎在使用该东西的某些时间(但不是全部)失败了。我真的不知道在我改变之前它是否像这样失败了。

我不需要回答到底发生了什么——我怀疑这会占用太多对代码块的评论等等。大多数情况下,我希望有人能给我一个或两个“啊,这个错误消息通常意味着”的一般指针,这样我就不会完全盲目地飞行(尽管如果有人能够想出更多根据我提供的信息,那会很棒)。

感谢您的时间。

4

1 回答 1

2

错误消息来自EFExtensions。来源表明,当读取器中记录的形状(字段计数和字段名称)与物化器期望的形状不匹配时,将引发此错误。

(物化器只是将对象实例从其他东西中提取出来的东西,在这种情况下,数据由阅读器读取)

从 EFExtensions 源中我并不清楚这在“正常”情况下是如何发生的,因为看起来预期的形状是从读取的第一个记录中推断出来的,然后检查所有后续记录。显然,对于 normal IDataReader,所有记录都将具有相同的形状。

但是,听起来您可能有自定义物化器在工作(可能从 EFExtensions 继承,因此您会收到它们的错误消息),在这种情况下,答案可能在于您的物化器代码。

于 2012-12-20T16:20:24.267 回答