Как «ToList» изменяет вывод моего запроса EntityFramework? - PullRequest
2 голосов
/ 01 декабря 2011

Здравствуйте, я использую Entity Framework / Vb.net 2010. У меня есть форма с bindingsource для сущности, и я хочу знать, в чем разница между этими двумя инструкциями:

  1. MyBindingSource.datasource = Из t в context.MyTable1 где ... некоторые условия Выберите t

  2. MyBindingSource.datasource = (Из т в контексте. MyTable1, где ... некоторые условия Выберите t) .ToList

Проблема в том, что при использовании каждого из них у меня возникает другая ситуация, когда я добавляю, удаляю или изменяю запись в bindingsource (например, при использовании второй инструкции, когда я удаляю что-то в объекте, запись все еще существует в bindingsource, пока я закрываю и снова открываю форму, или я должен удалить запись также из bindingsource, если при удалении из сущности я использую первую инструкцию, bindingsource обновляется мгновенно)

Не могли бы вы объяснить мне, пожалуйста? какой из них я должен использовать? Спасибо.

Ответы [ 2 ]

4 голосов
/ 01 декабря 2011

Первый возвращает запрос, к которому можно добавить дополнительные выражения where, упорядочение и т. Д. Привязка этого к источнику данных приведет к его выполнению.Это сохранит связь с объектами, так что источник привязки может обновляться автоматически.

Второй выполняет запрос и возвращает список объектов.Это тогда связано с источником данных.Этот список отделен от сущности, поэтому его необходимо перечитать, что происходит при повторном открытии формы.

0 голосов
/ 01 декабря 2011

Первый возвращает IEnumerable (OfType T), а второй - List (OfType T)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...