2012-12-20 58 views
1

我收到了上述錯誤信息,我希望有人能爲我翻譯這個東西。我在網上找到的唯一參考文獻是來自代碼塊的引用,沒有解釋。他們看起來像是相關的,但他們實際上並沒有提供任何幫助來弄清楚發生了什麼。「給定的閱讀器與當前實現器不兼容。爲此閱讀器創建不同的實現器。」

背景:我試圖保持的遺留代碼塊在MVC2/C#/ EF/SQL棧,它使用這些materializers(和,據推測,讀者)的方式與數據庫進行通信。我基本上不了解物化器如何超越「哦,看起來像是它做了這樣的事情」,你只是通過閱讀代碼本身得到的東西。我必須對使用實現者的表/對象集之一上的數據庫進行一些更改。我適當地調整了實現器(據我所知),大量地欺騙現有代碼,爲已添加的列/屬性添加等效行,並刪除已刪除行的行。我還在c#類中調用了一個名爲TryParse的函數,因爲據我所知,沒有任何東西使用它,我們正在試圖削減一些問題。它現在似乎失敗了一些,但不是全部,當這個東西被使用。我真的不知道在我的改變之前它是否失敗。

我不需要回答究竟發生了什麼 - 我有一個懷疑,那會代碼塊和什麼都不會太多評論。大多數情況下,我希望有人能給我一個一般的指針或兩個「啊,這個錯誤信息通常意味着」多樣化,這樣我就不會完全失明(儘管如果有人能夠提出更多比根據我提供的信息,這將是偉大的)。

謝謝你的時間。

回答

2

錯誤消息是從EFExtensions。源指示當讀取器中的記錄的形狀(字段計數和字段名稱)與實體工具所期望的形狀不匹配時引發此錯誤。

(A materializer只是這是令對象實例別的,在這種情況下,數據被讀取器讀取)

它不是立即清楚,我從EFExtensions源會發生些什麼在'正常'的情況下,因爲它看起來像是從第一個記錄讀出推斷的期望形狀,然後對照所有後續記錄進行檢查。顯然,對於正常的IDataReader,所有記錄將具有相同的形狀。

但是,聽起來好像您可能在工作中有自定義實現器(可能從EFExtensions繼承,因此爲什麼會收到錯誤消息),在這種情況下,答案可能在於實現器代碼中。

+0

謝謝。現在看看這個。 –