[英]Linq to sql stored procedure call wrong result
我在項目中使用Linq to Sql調用存儲過程。 這是一個get存儲過程,該過程返回幾行
`Return db.ProcName(param1, param2, ......,paramN).ToList`
它使用正確的參數正確調用存儲過程。 我可以通過運行SQL事件探查器看到這一點。 在Management Studio中運行存儲過程時,我得到正確的結果。 如果運行運行在配置文件日志中的sql語句,我得到正確的結果。
問題是Linq收到數據時,基本上ToList
返回的結果與數據庫返回的結果不同。 我確實記得關於NULL
值的內容,或者當沒有primary key
Linq會做一些有趣的事情,但是我不確定它到底是什么。
有人可以指出這里發生了什么嗎? 表1是在Management Studio中執行時存儲的proc返回的結果,表2是執行Linq to Sql代碼時返回的結果
表格1:
OrgRef OrgCode DisplayName StockTakeId StockTakeName StockPositionDate StockTakeOrganisationReturnId SubmittedBy ReturnStatus IsEditable ------------------------------------------------------------------------------------------------------------------------------------------------------------------ 9391 K81060 Name 2 Type2 NULL NULL NULL NULL 1 9391 K81060 Name 1 Type1 2014-05-20 311 Sachin Kalra Saved 1 9391 K81060 Name 1 Type1 2014-10-08 312 Sachin Kalra Saved 1
表2:
OrgRef OrgCode DisplayName StockTakeId StockTakeName StockPositionDate StockTakeOrganisationReturnId SubmittedBy ReturnStatus IsEditable ------------------------------------------------------------------------------------------------------------------------------------------------------------------ 9391 K81060 Name 2 Type2 NULL NULL NULL NULL 1 9391 K81060 Name 1 Type1 2014-05-20 311 Sachin Kalra Saved 1 9391 K81060 Name 1 Type1 NULL NULL Sachin Kalra Saved 1
在表1中,您可以看到第二行和第三行的第6列(StockPositionDate)和第7列(StockTakeOrganisationReturnId)都有值,但在表2中,這些值變為NULL。
任何人都知道它為什么會發生,即使使用正確的參數調用了存儲的proc。
我會嘗試重建DBML文件,這可能是因為模型已更改,而LINQ在試圖將新數據放入舊模型時感到困惑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.