【发布时间】:2014-11-08 13:21:26
【问题描述】:
我在 SQl 服务器中有一个 sql 视图:
SELECT dbo.job.idJob, SUM(dbo.tracking.iQty) AS TotalOrdered, dbo.tracking.idProduct
FROM dbo.tracking INNER JOIN
dbo.job ON dbo.tracking.idJob = dbo.job.idJob
GROUP BY dbo.tracking.idAction, dbo.tracking.idProduct, dbo.job.idJob
在 SQL Server 中返回:
idJob TotalOrdered idProduct
----------- ------------ -----------
5000 150 9
5000 75 18
5006 20 3
问题:
当我在 WPF 4.5 项目中通过 Entity Framework 6 访问此视图时,它返回不同的结果。我将视图添加到 edmx 文件中,然后通过以下方式调用视图:
Public Function GetTracking_Ordered(idJob As Integer) As Collection(Of vw_Tracking_Ordered) Implements ITrackingDataService.GetTracking_Ordered
Try
Using context = _ModelService.NewContext
Dim trackingList = (From recs In context.vw_Tracking_Ordered Where recs.idJob = idJob Select recs).ToList
Return New Collection(Of vw_Tracking_Ordered)(trackingList)
End Using
Catch ex As Exception
Return Nothing
End Try
End Function
以下是结果:
idJob TotalOrdered idProduct
----------- ------------ -----------
5000 150 9
5000 75 9
5006 20 3
注意 5000 作业的 idProduct 现在都是 9 而不是 9 和 18。
问题:
谁能帮我调试一下为什么这个结果会从 SQL 服务器变为实体框架?
提前感谢
【问题讨论】:
标签: .net vb.net entity-framework entity-framework-6 sql-view