如何将EF Code First DbContext绑定到Asp.Net DataSource
本文关键字:绑定 Asp Net DataSource DbContext First EF Code | 更新日期: 2023-09-27 17:59:04
我已经创建了以下Context
,用于实体框架代码优先:
public class Context : DbContext
{
public DbSet<Animal> Animals { get; set; }
}
现在,我想在Asp.Net应用程序中使用这个Context
,使用GridView
执行CRUD操作。我需要创建一个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>
您可以使用EntityDataSource
作为GridView
的源,并实现ContextCreating
事件的处理程序:
protected void DataSource_ContextCreating(object sender, EntityDataSourceContextCreatingEventArgs e)
{
var context = new Context();
e.Context = ((IObjectContextAdapter)context).ObjectContext;
}
然后您只需要在页面中配置数据源。EntitySetName
应该与上下文中公开的DbSet
属性名称相同。
另一种方法是使用ObjectDataSource
,它将在GridView
和DbSet<Animal>
之间架起一座桥梁,但这可能会更复杂,尤其是如果您想要双向数据绑定。