Ich habe diesen Code oben und es scheint, dass es nicht richtig zurückgibt. Wenn ich ein anderes Repository in der DB wie Repository2.Query() aufrufen. Wo (?? Code ??). Ich habe den Fehler unten erhalten.Fehler beim Aufruf eines anderen Repos - 'Es ist bereits ein offener DataReader mit diesem Befehl verbunden, der zuerst geschlossen werden muss'
ERROR: { „Es gibt bereits eine offene Datareader mit diesem Befehl zugeordnet, der zuerst geschlossen werden muss“}
Allerdings, wenn ich die Rückkehr zu ICollection ändern <> es Antworten richtig .
public ICollection<Application> GetAppById(Guid Id)
{
return Repository.Query().Where(c => c.Id == Id).Select(c => c.App).ToList();
}
I IQueryable Rückkehr debuggen, ist kein Fehler, aber ich konnte nicht die Daten finden finden, die es abruft. Der Fehler tritt auf, wenn Sie einen anderen zum Repo aufrufen.
Öffnen Sie einen DataReader an derselben Stelle (oder rufen Sie einen anderen Code auf) an anderer Stelle in Ihrem Programm vor diesem Punkt? Versuchen Sie vielleicht, einen DbContext aus mehreren Threads zu verwenden? – yaakov
Ich Debug IQueryable zurück, es gibt keinen Fehler, aber ich konnte nicht finden, die Daten, die es abruft. Der Fehler tritt auf, wenn Sie einen anderen zum Repo aufrufen. –
user1960948
Ich habe das Gefühl, dass der Unterschied nicht in "IQueryable" versus "ICollection" ist, sondern die Tatsache, dass Sie '.ToList()' aufrufen, was Ihre faul abfragbare Stelle sofort auswertet. Ist 'Repository.Query()' Ihr eigener Code oder ist es ein Standardframework (z. B. EntityFramework)? – yaakov