.net unable to cast of type dbquery`1 [] to type objectquery

ช่วงนี้กำลังศึกษา .Net Entity Framework อยู่ค่ะ

แล้วก็เลยลองทำ ADO.Net Entity Framwork Quick Start ดูค่ะ

ก็ทำตามไปเรื่อยๆ แต่มาสะดุดเอาตรง (เราใช้ EF 6.1 ค่ะ ตามที่ได้ Nuget ออกมา)

this.departmentList.DataSource = ((ObjectQuery)departmentQuery).Execute(MergeOption.AppendOnly);


ซึ่งมี Exception ตอน runtime ค่ะ ซึ่งตามชื่อหัวข้อเลยค่ะ มัน cast จาก DbQuery ไป ObjectQuery ไม่ได้ ก็หาอยู่นานค่ะ เพราะก็เพิ่งจะอ่าน Quick Start อ่ะเน้อะ จะไปรู้เรื่องอะไร

สรุปเลยละกันค่ะ คือมัน cast ไม่ได้ค่ะ ถูกแล้ว เพราะ edmx มันสร้างเป็น DbSet ซึ่ง query ที่ได้จะเป็น DbQuery ก็ต้องใช้มันทั้งแบบนั้นค่ะ แต่แล้วใช้แบบนั้นมันใช้ยังไงฟร่ะ ก็หากันต่อไปค่ะ ก็มามั่วเองจนได้ ซึ่งที่ถูกควรจะเป็น

this.departmentList.DataSource = departmentQuery.ToList();

จึงแจ้งมาเผื่อใครจะเป็นเหมือนกัน

Reference:
ADO.Net Entity Framwork Quick Start

Entity Framework 4.1: Unable to cast from DbQuery to ObjectQuery

No comments:

Post a Comment