Этот вопрос чисто академический, потому что я никогда не мечтал сделать это в реальном коде.
Используя LINQ to SQL, я хочу связать IQueryable<T>
с GridView. Я попытался сделать это с помощью следующего кода, но я получил исключение:
Невозможно получить доступ к удаленному объекту.
Имя объекта: 'DataContext, доступ к которому осуществляется после удаления.'.
Вот мой код, который получает IQueryable<tabGenre>
с использованием 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<T>
.
private void GetGenres() {
gvGenre.DataSource = Genre.GetGenres2();
gvGenre.DataBind();
}
Так почему это не работает? Я мог бы просто .ToList<tabGenre>()
, вернуть его, привязать к нему, и тогда он будет работать, но почему IQueryable не работает таким же образом? Здесь я действительно пытаюсь достичь понимания того, что может сделать IQueryable.
EDIT:
Я также пытался отключить отложенную загрузку, но безрезультатно.