Этот вопрос носит чисто академический характер, потому что мне никогда не приходило в голову делать это в реальном коде.
Используя LINQ to SQL, я хочу выполнить привязку IQueryable
в GridView. Я пытался сделать это с помощью следующего кода, но получаю исключение:
Невозможно получить доступ к удаленному объекту. Имя объекта: «DataContext доступен после Dispose.»
Вот мой код, который получает IQueryable
с использованием LINQ to SQL:
public static IQueryable<lu_Genre> GetGenres2() {
using (BooksContextDataContext ctx = new BooksContextDataContext()) {
IQueryable<tabGenre> iq = from g in ctx.tabGenre
select g;
return iq;
}
}
А вот мой код, который связывает GridView с вернул IQueryable
.
private void GetGenres() {
gvGenre.DataSource = Genre.GetGenres2();
gvGenre.DataBind();
}
Так почему это не работает? Я мог бы просто .ToList
вернуть его, привязать к нему, и тогда он заработал бы, но почему IQueryable не работает таким же образом? Я действительно пытаюсь понять, на что способен IQueryable.
EDIT: Я также пробовал отключить ленивую загрузку, но безрезультатно.