Ich habe, was ich dachte, war ein sehr einfaches Stück Code, aber die Ergebnisse sind verblüfft mich. Ich frage Entitäten ab, die LINQ verwenden, und dann über die Ergebnisse iterieren, um ein Array zu erstellen. Ich beobachte den Datenverkehr von und zur Datenbank und alles sieht gut aus. Wenn ich die Abfrage, die LINQ an SQL sendet, kopiere und sie direkt mit SQL ausführe, erhalte ich die erwarteten Ergebnisse. Wenn ich jedoch über die Ergebnisse iteriere - oder sogar die Ergebnisse beobachte -, ist jeder Datensatz genau derselbe. Dies ist NICHT was SQL zurückgibt. Was mache ich falsch?Iterieren über LINQ-Entity-Ergebnisse
var eventList = from e in entityContext.AuctionSet select e;
ArrayList DayArray = new ArrayList();
int i = 0;
foreach (Auction ae in eventList)
{
// If I put a watch on eventList all the records are the same!
Auction temp = ae; // Even tried copying to a temp value per another solution
// Even though the records are different in the database,
// and the correct number of records are returned, EVERY "ae" instance
// has the exact same values!
DayArray.Add(new {
id = i,
title = temp.County.ToString()
});
i++;
}
Vielen Dank!
BEARBEITEN: Vergessen Sie zu erwähnen, dass die Entitäten aus einer Ansicht kommen, was angesichts des Kommentars über den Primärschlüssel sinnvoll wäre.
Nur aus Neugier, warum verwenden Sie eine ArrayList? Warum verwenden Sie keine Liste? –
BFree
Was ist der Typ von "EventList"? –
Verwenden einer ArrayList, weil sie nach diesem Codebeispiel in JSON serialisiert wird. –