如何将EF Code First DbContext绑定到Asp.Net DataSource?

Kee*_*ker 7 c# asp.net entity-framework datasource objectcontext

我已创建以下内容Context以与Entity Framework Code First一起使用:

public class Context : DbContext
    {
        public DbSet<Animal> Animals { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

现在我想Context在Asp.Net应用程序中使用它来使用a 执行CRUD操作GridView.我需要创建一个DataSource来做数据绑定.我该怎么办?

ASP部分看起来像这样:

<asp:GridView runat="server" DataSourceID="animalDataSource" DataKeyNames="AnimalID" AutoGenerateColumns="false">   
    <Columns>
        <asp:BoundField DataField="Description" HeaderText="Description" />
        <asp:CommandField ShowCancelButton="true" ShowEditButton="true" ShowDeleteButton="true" />
    </Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)

Lad*_*nka 11

您可以将事件的EntityDataSource源代码GridView用作ContextCreating事件处理程序:

protected void DataSource_ContextCreating(object sender, EntityDataSourceContextCreatingEventArgs e)
{
    var context = new Context();
    e.Context = ((IObjectContextAdapter)context).ObjectContext;
}
Run Code Online (Sandbox Code Playgroud)

然后,您只需在页面中配置数据源.EntitySetName应该与您DbSet在上下文中公开的属性名称相同.

其他方式是使用ObjectDataSource它将在之间建立桥梁GridView,DbSet<Animal>但这可能更复杂,尤其是如果您想要双重数据绑定.

  • 它不适用于EntityFramework 6 (4认同)