Я пытаюсь понять, можно ли получить одну строку из базы данных, используя структуру сущности, не возвращая все данные. Может быть, я недоразумение как EF работа, но я считаю его похожим на следующее:Получите одну строку, используя Entity Framework, не получая все данные
tbl1
Id | Name | Place
1 | Teressa Green | UK
2 | Robin Banks | Germany
3 | Liam Neeson | Canada
Если я хочу Robin Banks
Id сделать что-то похожее на
context.tbl1.where(obj => obj.name = "Robin Banks")
Однако от того, что я я понял, что это все данные из таблицы, а затем фильтрация до одной строки. Есть ли способ вернуть только одну строку обратно в логику без первоначального возврата всех данных?
Чтобы поставить мою проблему в одном предложении. Я пытаюсь избежать загрузки назад все строки, когда я просто хочу 1.
* «это получает все данные из таблицы БД, а затем фильтрование вниз к одной строке» * нет , это не. Entity Framework построит запрос SELECT * FROM tbl1 WHERE name = 'Robin Banks' и передаст его на сервер базы данных, который выполнит его как обычный запрос и вернет соответствующие строки в Entity Framework. – Albireo
Вы ошибаетесь. Он будет фильтроваться в базе данных не в памяти. –
Он будет фильтроваться только в памяти, если вы делаете что-то вроде этого: 'context.tbl1.ToList(). Where (obj => obj.name =" Robin Banks ")'. Поскольку вы сначала загружаете все в память, а затем фильтруете данные с помощью оператора where(). Но, как это делается с вами, фильтр применяется к базе данных. – croxy