2017-03-09 82 views
0

我有一個Mysqlcontext從中進行查詢。但是,我不知道這些查詢如何工作,因爲我通常會進行標準調用,例如「從哪裏選擇」。MySqlContext如何將查詢寫入變量

這些略有不同,在這種情況下,我嘗試從我的db.Users獲取一個ID。不幸的是,它不能寫我的UserId到一個變量?

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

它只是返回null。這是如何正確完成的,以及我可以在哪裏找到有關這些查詢如何工作的更多文檔?

這是我更新的代碼:

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

這實際上似乎是工作。但是,我仍然困惑,我必須從列表中獲取我的項目,當只有1個匹配的ID? (將在所有情況下)

不能以某種方式查詢只是一個id並將其寫入一個int變量?

+0

你混淆了數據庫查詢和奧姆斯像NHibernate的或實體框架。這個問題與ASP.NET是一個Web框架完全沒有關係。既可以像使用ADO.NET一樣運行字符串查詢,也可以像使用實體框架一樣使用ORM將*表映射到對象並將LINQ用於查詢 –

+0

此外,該代碼永遠不會返回空值。你的代碼應該返回*全部*匹配的id - 你的變量應該是'id'而不是'id'。如果沒有匹配,那麼得到的枚舉將是*空*。請發佈您的代碼。只有當匹配的行有'UserId'列時,'ids'纔會包含空值。 –

+0

讓我更新我的代碼! –

回答

0

我會做這樣的事情:

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