SeT*_*ToY 64 c# entity-framework
有没有办法使用Entity Framework 4获取单个列的全部内容?像这样的SQL Query一样:
SELECT Name FROM MyTable WHERE UserId = 1;
Run Code Online (Sandbox Code Playgroud)
Chr*_*son 122
您可以使用LINQ .Select()来做到这一点.在你的情况下它会像:
string Name = yourDbContext
.MyTable
.Where(u => u.UserId == 1)
.Select(u => u.Name)
.SingleOrDefault(); // This is what actually executes the request and return a response
Run Code Online (Sandbox Code Playgroud)
如果您希望响应中有多个条目,则可以使用它.ToList()来执行请求.这样的事情,得到30岁的每个人的名字:
string[] Names = yourDbContext
.MyTable
.Where(u => u.Age == 30)
.Select(u => u.Name)
.ToList();
Run Code Online (Sandbox Code Playgroud)
我对Entity完全陌生,但是从理论上讲,这就是我要做的事情...
var name = yourDbContext.MyTable.Find(1).Name;
Run Code Online (Sandbox Code Playgroud)
如果是主键。
- 要么 -
var name = yourDbContext.MyTable.SingleOrDefault(mytable => mytable.UserId == 1).Name;
Run Code Online (Sandbox Code Playgroud)
- 要么 -
对于整个列:
var names = yourDbContext.MyTable
.Where(mytable => mytable.UserId == 1)
.Select(column => column.Name); //You can '.ToList();' this....
Run Code Online (Sandbox Code Playgroud)
但是“哦,Geez Rick,我知道什么……”
使用 LINQ 您的查询应该如下所示:
public User GetUser(int userID){
return
(
from p in "MyTable" //(Your Entity Model)
where p.UserID == userID
select p.Name
).SingleOrDefault();
}
Run Code Online (Sandbox Code Playgroud)
当然,要执行此操作,您的解决方案中需要有一个 ADO.Net 实体模型。
| 归档时间: |
|
| 查看次数: |
90392 次 |
| 最近记录: |