Ich bin neu in EF und ich versuche, eine Erweiterungs-Methode zu verwenden, die von meinem Datenbanktyp User
in meine Info-Klasse UserInfo
konvertiert.
Ich benutze zuerst Datenbank, wenn das einen Unterschied macht?Der Vorgang kann nicht abgeschlossen werden, da der DbContext Fehler wurde
Mein Code unten gibt dem Fehler
Der Vorgang kann nicht abgeschlossen werden, da die DbContext angeordnet wurde.
try
{
IQueryable<User> users;
using (var dataContext = new dataContext())
{
users = dataContext.Users
.Where(x => x.AccountID == accountId && x.IsAdmin == false);
if(users.Any() == false)
{
return null;
}
}
return users.Select(x => x.ToInfo()).ToList(); // this line is the problem
}
catch (Exception ex)
{
//...
}
Ich kann sehen, warum es es tun würde, aber ich verstehe nicht, warum auch das Ergebnis der where-Anweisung nicht in das users
Objekt gespeichert wird?
Also meine wichtigste Frage ist, warum funktioniert es nicht und zweitens, was ist der richtige Weg, um Erweiterungsmethoden und EF zu verwenden?
Danke. Ich kann jetzt sehen, dass IQueryable ist, wo ich in Schwierigkeiten gerate. Wenn ich die users.Select() ... Zeile in die using-Anweisung setzen, gibt es mir einen anderen Fehler (andere Frage, die ich denke). Also habe ich den Rückgabetyp IEnumerable geändert und das hat mein Problem gelöst. –
Colin
Danke, das ist für mich funktioniert und jetzt kam ich zu wissen, dass IQueryable Active DBContext –