我在我的项目中使用Linq到Sql来调用存储过程。这是一个获取存储过程,返回几行Linq到SQL存储过程调用错误的结果
`Return db.ProcName(param1, param2, ......,paramN).ToList`
它使用正确的参数正确调用存储过程。我可以看到通过运行SQL分析器。当我在管理工作室中运行存储过程时,我得到了正确的结果。如果运行记录在配置文件日志中的sql语句,我会得到正确的结果。
问题是当Linq收到数据时,基本上ToList
返回的结果与数据库返回的结果不一样。我确实记得有关NULL
的值或当没有primary key
Linq做有趣的事情,但我不确定它到底是什么。
有人能指出这里发生了什么吗?表1是通过存储过程返回的结果时在管理工作室执行和表2返回时LINQ到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。
任何人都知道为什么会发生这种情况,即使存储过程是用正确的参数调用的。
我不确定它是什么,我测试它错了,或者只是重建做了一些事情。我已经标记了关闭它的答案。 – Yatish 2014-10-09 09:38:13