"Data binding directly to a store query is not supported" Hatası ve Çözümü

LINQ sorgulamalarımızda select işlemleri yaptıktan sonra listeleme işlemlerini DataList, Gridview gibi veri listeleme araçlarını kullanmak isteriz.

Örnekte Linq kullanarak tbl_Student tablosundaki bütün öğrencileri listeleyen sorgumuzu yazdık.
    protected void Page_Load(object sender, EventArgs e)
        {
            StudentsEntities se = new StudentsEntities(); //Entity modelimizi çağırdık.

            var student = from s in se.tbl_Student //LINQ Select Sorgumuz, öğrencileri listelediğimiz
                          select new
                          {
                              s.StudentName,
                              s.StudentSurname,
                              s.StudentClass
                          };
        }

Sorgu sonucunda student isimli veri kaynağı oluştu ve Gridview'e bağladık.
GridView1.DataSource = student; //Üstteki sorgumuz sonucu oluşan veri kaynağı
GridView1.DataBind();//Veri kaynağını gridview'e bağladık

Fakat form yüklenirken aşağıdaki hatayı aldık.

"Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery, DbRawSqlQuery) is not supported."

Çözüm: student isimli veri kaynağımızın sonuna Listeye dönüştürmek için ToList() metodunu ekliyoruz ve veri kaynağı olarak kullanıyoruz. Form yüklendikten sonra listeleme işlemi tamamlanmış olacaktır.

GridView1.DataSource = student.ToList(); 
GridView1.DataBind();

Yorumlar