Ho una vista sql nel server 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
In SQL Server restituisce:
idJob TotalOrdered idProduct
----------- ------------ -----------
5000 150 9
5000 75 18
5006 20 3
Quando accedo a questa vista tramite Entity Framework 6 in un progetto WPF 4.5 restituisce risultati diversi. Aggiungo la vista al file edmx e poi chiamo la vista nel seguente modo:
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
I seguenti sono i risultati:
idJob TotalOrdered idProduct
----------- ------------ -----------
5000 150 9
5000 75 9
5006 20 3
AVVISO l'idProduct per il lavoro 5000 è ora sia 9 che 9 e 18.
Qualcuno può aiutarmi a eseguire il debug perché questo risultato cambia da server SQL a Entity Framework?
Grazie in anticipo
Assicurati che la tua View
nel file .edmx
abbia una chiave primaria assegnata. In caso contrario, aggiungi la entity key
appropriata utilizzando il designer edmx. In questo caso, potresti voler includere le colonne idJob
e idProduct
nella tua chiave di entità.
Leggi anche qui: http://msdn.microsoft.com/en-us/library/vstudio/dd163156(v=vs.100).aspx