2012-11-28 205 views
1

我制訂一個複雜類型到SP的結果,並且正在以下錯誤:實體框架5數據映射

The data reader is incompatible with the specified 'CLMModel.GetContractPerformanceReview_Result'. A member of the type, 'LastYearProfit', does not have a corresponding column in the data reader with the same name.

我知道,這通常表示一些錯誤映射的類型,所以我看了看,並調整他們無濟於事。傳入類型是decimal(18, 2)(在SQL Server上),映射類型也是decimal(18, 2)。我試圖提高精度到38,2沒有成功,因爲我認爲這可能是一個潛在的更大的值被檢測到的情況。

該值是根據此定義從列中生成的,因此我可以看到它沒有成功映射的理由。

我甚至試過Create a new Complex Type,使用生成的類型,但它仍然失敗。我已確認字段名稱也匹配。

廣告的援助將不勝感激。我試圖在SO上搜索這個,但沒有成功,但如果有另一個問題,你可以指點我,請做。謝謝。

+0

明顯的問題 - 存儲過程是否返回一個名爲'LastYearProfit'的列? –

+0

@理查德 - 是的。我已經檢查並進行了雙重檢查,名稱匹配。之前在另一列發生了這種情況,我相信這一點已經發生了變化,因爲我刪除並重讀了它,因此將其降序。我也有類似的映射工作正常的同一個數據庫的其他調用。 –

回答

1

好的,我找到了原因,這是生成此響應的存儲過程根據參數創建不同的結果集。這意味着當我手動運行它時,它顯示了列,但實體框架無法正確識別正確的列。

所以課程是 - 如果您的SP爲不同的參數返回不同的結果,請確保它們都返回相同的列。