2017-03-09 5 views
0

Ich habe eine Mysqlcontext, aus dem ich Anfragen. Allerdings weiß ich nicht, wie diese Abfragen funktionieren, da ich normalerweise die Standardaufrufe z. "Wählen von wo".MySqlContext Wie schreibe ich Abfrage auf Variable

Diese sind etwas anders, und in diesem Fall versuche ich, eine ID aus meiner db.Users zu holen. Leider kann es nicht meine UserId zu einer Variablen schreiben?

var id = db.Users.Where(u => u.Email == email).Select(u => u.UserId); 

es gibt nur Null zurück. Wie wird das richtig gemacht, und wo finde ich weitere Dokumentation zur Funktionsweise dieser Abfragen?

Dies ist meine aktualisierte Code:

var id = db.Users.Where(u => u.Email == email).Select(u => u.UserId); 
var materializeId = id.ToList(); 
int UserId = materializeId[0]; 

Dies scheint tatsächlich zu funktionieren. Bin aber immer noch verwirrt, dass ich meinen Artikel aus einer Liste holen muss, wenn es nur 1 passende ID gibt? (Es wird in allen Fällen geben)

Kann ich irgendwie nicht nur eine einzelne ID abfragen und es in eine int-Variable schreiben?

+0

Sie sind verwirrend Datenbankabfragen und ORMs wie NHibernate oder Entity Framework. Diese Frage hat mit ASP.NET, einem Web-Framework, überhaupt nichts zu tun. Verwenden Sie entweder ADO.NET und führen Sie String-Abfragen aus, wie Sie es bereits tun, oder verwenden Sie ein ORM-ähnliches Entity Framework zum Mappen von * tabellen zu Objekten und verwenden Sie LINQ für Abfragen –

+0

Außerdem kann dieser Code niemals null zurückgeben. Ihr Code sollte * alle * passenden IDs zurückgeben - Ihre Variable sollte "IDs" und nicht "ID" sein. Der resultierende Aufzählungswert wäre * leer *, wenn keine Übereinstimmungen vorhanden wären, nicht null. Bitte posten Sie Ihren Code. 'ids 'würde Nullen nur enthalten, wenn es übereinstimmende Zeilen mit null' UserId 'Spalten gäbe –

+0

Lassen Sie mich nur meinen Code aktualisieren! –

Antwort

0

würde ich so etwas tun:

var userId = (from u in db.Users where u.Email == email select u.Id).FirstOrDefault();

Verwandte Themen