我一直在使用EF4 /存儲過程/複雜類型一段時間了,但我之前沒有看到過這個問題。EF4 SPROC複雜類型映射 - 問題ROW_NUMBER()
我有一個存儲過程返回一堆字段,映射到一個複雜類型的集合。一直工作正常,直到我介紹這個額外的領域。
它使用ROW_NUMBER
從T-SQL(在排名結果使用):
SELECT ...
ROW_NUMBER() OVER (ORDER BY [Field1], [Field2]) AS [SearchRank],
...
FROM @ResultSet
在我的複雜類型,我有這個設置爲的Int32,並且我還使用非空的POCO的,所以我把這個作爲POCO上的常規int
。
但是當我嘗試和執行查詢,我得到這個錯誤:
System.InvalidOperationException: The 'SearchRank' property on 'RankedLocationSearchResult' could not be set to a 'Int64' value. You must set this property to a non-null value of type 'Int32'.
我只是不明白這一點。我沒有說過這個屬性/字段是Int64。而我的財產是類型'Int32'的非空值。
現在,我確定問題是與ROW_NUMBER()。
因爲如果我將該T-SQL更改爲1 AS [SearchRank]
(硬代碼,用於測試),它工作正常。
這幾乎就像EF看到ROW_NUMBER()
返回Int64一樣。
爲什麼?我們是否必須將其作爲32位整數或其他?
任何人有這個問題?