有没有办法使用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