Есть ли способ получить все содержимое одного столбца с помощью Entity Framework 4? То же самое, что и этот SQL-запрос:
SELECT Name FROM MyTable WHERE UserId = 1;
Есть ли способ получить все содержимое одного столбца с помощью Entity Framework 4? То же самое, что и этот SQL-запрос:
SELECT Name FROM MyTable WHERE UserId = 1;
Вы можете использовать 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
Если вы ожидаете более одной записи в ответе, вы можете использовать .ToList()
вместо этого, чтобы выполнить запрос. Как то так, чтобы получить Имя каждого с 30 лет:
string[] Names = yourDbContext
.MyTable
.Where(u => u.Age == 30)
.Select(u => u.Name)
.ToList();
Используя LINQ, ваш запрос должен выглядеть примерно так:
public User GetUser(int userID){
return
(
from p in "MyTable" //(Your Entity Model)
where p.UserID == userID
select p.Name
).SingleOrDefault();
}
Конечно, для этого вам нужно иметь ADO.Net Entity Model в своем решении.
Я полный noob на Entity, но это то, как я буду делать это теоретически...
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....
Но "О Гез Рик, что я знаю..."
Вы можете использовать предложение LINQ select
и ссылаться на свойство, относящееся к столбцу Name.