.net - SQL Server View 在 Entity Framework 中返回不同的结果

标签 .net vb.net entity-framework entity-framework-6 sql-view

我在SQl服务器中有一个sql View :

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访问此 View 时,它返回不同的结果。我将 View 添加到edmx文件中,然后通过以下方式调用该 View :
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 Server更改为Entity Framework?

提前感谢

最佳答案

确保在View文件中的.edmx分配了主键。如果还没有,请使用edmx设计器自己添加适当的entity key。在这种情况下,您可能需要在实体 key 中包括idJobidProduct列。

在这里也阅读:http://msdn.microsoft.com/en-us/library/vstudio/dd163156(v=vs.100).aspx

关于.net - SQL Server View 在 Entity Framework 中返回不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25840878/

相关文章:

entity-framework - 如何一行删除 Entity Framework poco中的从属实体?

c# - Entity Framework 为导航属性添加新记录

.net - 如何在 C# 中 String.Format 一个月的哪一天?

vb.net - Crystal 报表中每个组的新页面

java - 如何获取电脑的ID?

.NET 通过 AppSetting 通过指纹查找证书

.net - 为 Entity Framework 安装Oracle Data Provider时的"access denied"

c# - 为什么网络用户通过 NTLM 进行身份验证?

.net - 查询 NT AUTHORITY/NETWORK SERVICE 下的 Active Directory

.net - RazorEngine:可以在 Webforms 应用程序中使用吗?