Подтвердить что ты не робот

Как выбрать один столбец с Entity Framework?

Есть ли способ получить все содержимое одного столбца с помощью Entity Framework 4? То же самое, что и этот SQL-запрос:

SELECT Name FROM MyTable WHERE UserId = 1;
4b9b3361

Ответ 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();

Ответ 2

Используя 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 в своем решении.

Ответ 3

Я полный 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....

Но "О Гез Рик, что я знаю..."

Ответ 4

Вы можете использовать предложение LINQ select и ссылаться на свойство, относящееся к столбцу Name.