J K*_*ing 7 .net vb.net entity-framework sql-view entity-framework-6
我在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
Run Code Online (Sandbox Code Playgroud)
在SQL Server中它返回:
idJob TotalOrdered idProduct
----------- ------------ -----------
5000 150 9
5000 75 18
5006 20 3
Run Code Online (Sandbox Code Playgroud)
当我通过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
Run Code Online (Sandbox Code Playgroud)
以下是结果:
idJob TotalOrdered idProduct
----------- ------------ -----------
5000 150 9
5000 75 9
5006 20 3
Run Code Online (Sandbox Code Playgroud)
注意5000作业的idProduct现在都是9而不是9和18.
任何人都可以帮我调试为什么这个结果从SQL服务器变为实体框架?
谢谢,谢谢
请确保您View的在.edmx文件中有一个主键分配.如果没有,请entity key使用edmx设计器自行添加.我这个情况下,你可能要包括列idJob,并idProduct在你的实体键.
另请阅读:http://msdn.microsoft.com/en-us/library/vstudio/dd163156(v = vs.100).aspx
| 归档时间: |
|
| 查看次数: |
1648 次 |
| 最近记录: |