有沒有辦法使用Entity Framework 4獲取單個列的全部內容?同樣這樣的SQL查詢:如何使用實體框架選擇單個列?
SELECT Name FROM MyTable WHERE UserId = 1;
有沒有辦法使用Entity Framework 4獲取單個列的全部內容?同樣這樣的SQL查詢:如何使用實體框架選擇單個列?
SELECT Name FROM MyTable WHERE UserId = 1;
您可以使用LINQ的.Select()
來做到這一點。在你的情況下,它會去是這樣的:
yourDbContext.MyTable.Where(u => u.UserId == 1).Select(u => u.Name);
你可以使用LINQ select
條款和參考,涉及到您的姓名列的屬性。
使用LINQ查詢應該是這個樣子:
public User GetUser(int userID){
return
(
from p in "MyTable" //(Your Entity Model)
where p.UserID == userID
select p.Name
).SingleOrDefault();
}
當然,要做到這一點,你需要有一個ADO.Net實體模型在解。
我在實體一個完整的小白,但是這是我會怎麼做它在理論上...
var name = yourDbContext.MyTable.Find(1).Name;
如果這是一個主鍵。
- 或 -
var name = yourDbContext.MyTable.SingleOrDefault(mytable => mytable.UserId == 1).Name;
- 或 -
對於整列:
var names = yourDbContext.MyTable
.Where(mytable => mytable.UserId == 1)
.Select(column => column.Name); //You can '.ToList();' this....
但是, 「哦老天裏克,我怎麼知道......」
嗨,我得到一個錯誤'不能隱式轉換類型'System.Linq.IQueryable'爲'db.Offices.Where(o => o.Offic eId == emp.OfficeId)。選擇(o => o.DepartmentId)'有什麼想法? –
guitarlass
2014-07-31 05:09:51
@guitarlass如果你想從你的查詢中得到一個單一的結果,那麼你需要做一些事情:'string s = db.Offices.Where(o => o.OfficeId == emp.OfficeId).Select(o => o.DepartmentId).FirstOrDefault()' – 2014-07-31 07:22:27