У меня есть класс, который извлекает данные из БД.
[Table(Name = "Ilanlar")]
public class Ilan
{
[Column(Name="ilan_id" ,IsPrimaryKey = true)]
public int M_ilan_id;
[Column(Name="refVerenUser_id")]
public int M_refVerenUser_id;
}
И я связываю данные, поступающие из БД через класс выше.
private void ItemsGet()
{
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = f_IlanlariGetir(CurrentPage);
objPds.AllowPaging = true;
objPds.PageSize = 3;
objPds.CurrentPageIndex = CurrentPage;
rptIlanlar.DataSource = objPds; //rptIlanlar = asp:Repeater
rptIlanlar.DataBind();
}
protected void Page_Load(object sender, EventArgs e)
{
ItemsGet();
}
private System.Collections.IEnumerable f_IlanlariGetir(int p)
{
Context context = new Context(DAO.dbYaban.ConnectionString);
return context.GetTable<Ilan>();
}
Но результат IEnumerable, но мне нужно что-то вроде DataSet.
Я получаю эту ошибку:
Я нашел хорошее объяснение этой ошибке, это:
Базовый источник данных должен поддерживать интерфейс ICollection в
заказ на сетку для автоматического пейджинга. ICollection требует
класс для реализации свойства Count. ArrayList и DataView оба
поддерживать интерфейс, чтобы вы могли использовать их как DataSources. Другие классы поддерживают только интерфейс IEnumerable. Это позволяет им
для использования в качестве источника данных, но не в качестве источника данных с подкачкой.
SqlDataReader был бы примером такого класса. Ссылка
Но мне нужно связать повторитель с результатами linq к таблицам sql. Что мне делать?