2016-06-10 7 views
0

Abfrage Abfrage:Wie kann ich InvalidOperationException beheben, wenn EF Code erste Datenbank

var user = db.Users.FirstOrDefault(u => u.Email.Equals(username) && u.Password.Equals(password)); 

Fehler:

Local = 'db.Users.Local' threw an exception of type 'System.InvalidOperationException' 

Detaillierte Fehlermeldung:

Message = "The context cannot be used while the model is being created. This exception may be thrown if the context is used inside the OnModelCreating method or if the same context instance is accessed by multiple threads concurrently. Note that instance members of D... Source: ""entityframework" StackTrace:StackTrace = " at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()\r\n at System.Data.Entity.Internal.InternalContext.Initialize()\r\n at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)\r\n at System...

+0

Wo setzen Sie Ihren Code nicht zu entsorgen haben? Mit der Abfrage ist nichts falsch, aber ich schätze, dass Sie es an einem falschen Ort platzieren. – akazemis

+0

Seitenknoten: Es ist eine schlechte Praxis, das Passwort in der Datenbank zu speichern. Speichere einen Kryptographiehash des Passworts, vorzugsweise SALTed. – N8allan

+0

Die Sache ist, es funktionierte gut, bis ich mein Projekt von meinen Dokumenten zu c: Laufwerk bewegte. Ich weiß nicht, ob das das Problem verursacht hat. –

Antwort

0

Sie MultipleActiveResultSets=true; in Ihrer Verbindung setzen können Zeichenkette

sollten Sie in der Fehlermeldung

o r if the same context instance is accessed by multiple threads gleichzeitig auf folgendes achten.

yourcontext context = new yourcontext(); 

var user = context.Users.FirstOrDefault(u => u.Email.Equals(username) && u.Password.Equals(password)); 

vor den Kontext hier verwenden Sie die Verbindung wie

Verwandte Themen