2011-07-29 68 views
0

Total ef新手問題 - 給定這個簡單的實體模型,我將如何設置一個簡單的查詢來顯示GridView中的所有客戶端?或者在給定範圍內顯示所有帶有zip的客戶端?簡單的EF查詢gridview?

public class scheduleContext : DbContext 
{ 
    public DbSet<client> clients { get; set; } 
    public DbSet<appt> appts { get; set; } 
} 

public class client 
{ 
    public int clientID { get; set; } 
    public String name { get; set; } 
    public String email { get; set; }  
} 

public class appt 
{ 
    public int apptID { get; set; } 
    public int clientID { get; set; } 
    public DateTime date { get; set; } 
} 

...

scheduleContext schedule = new scheduleContext(); 
var q = from p in schedule.appts where select p; //this throws an error 

GridView1.DataSource = schedule.appts.Load(); //load what?? 
GridView1.DataBind(); 
+0

首先,你在做什麼q變量?它沒有被使用。在where子句後面有個錯誤。你可以刪除where關鍵字,因爲你沒有被任何東西過濾。接下來,您的班級模型中的zip字段在哪裏? – arviman

回答

0

您是否嘗試過使用EntityDataSource控件?使用這個控件可以讓你使用LINQ來查詢你的對象模型,並支持在網格視圖中進行分頁和排序。

讓我們來看一個例子:

<asp:entitydatasource 
    id="clientDataSource" 
    contexttypename="scheduleContext.Example, Example" 
    entitysetname="clients" 
    runat="server" 
/> 

<asp:gridview 
    datasourceid="clientDataSource" 
    allowpaging="true" 
    allowsorting="true" 
    pagesize="20" 
    runat="server"> 

    <asp:boundfield datafield="name" headertext="Name" sortexpression="name" /> 
    <asp:boundfield datafield="email" headertext="Email" sortexpression="email" /> 
</asp:gridview> 

有許多不同的方式來配置EntityDatasource讓你做一套過濾器,選擇特定的列等

有大量的實例和提示對於這些控件,這些僅僅是幾個: