2011-08-31 6 views
8

Questa è la prima volta che utilizzo Entity Framework e ottengo risultati confusi. So una tabella particolare contiene 3 righe distinte quando si esegue questa query SQL:La query di framework Entity restituisce la stessa riga più volte

SELECT * FROM mytable WHERE service_month = 201012 

Quando funzionare questa domanda contro l'intelaiatura tuttavia, ottengo 3 righe, ma sono tutti copie della prima fila (sintassi VB).

Dim temp = _context.mytable.Where(Function(x) x.service_month = 201012) 

Ho impostato qualcosa in modo errato? Questo è come lo farei con LINQ to SQL quindi mi sento come se mi mancasse qualcosa.

+0

cosa stai facendo con 'temp' per controllare i valori? –

risposta

18

Correggere la definizione della chiave primaria nell'EDMX. (Se la tabella non ha PK, aggiungine uno.) Quando tutte le righe restituiscono la stessa "chiave", l'EF restituisce la stessa istanza dell'oggetto.

+1

Bingo. Sto usando le tabelle dei rapporti create da qualcun altro e non avevano una chiave primaria. Grazie. – gfrizzle

+6

Anche se gli sviluppatori chiamano questa funzione, la chiamo bug. Grazie mille per la soluzione. – Chris

+0

Grazie a @Craig. Ho appena scoperto che la tabella su cui sto lavorando non ha una chiave primaria. –

Problemi correlati