我创建了以下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>
答案 0 :(得分:11)
您可以使用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>
之间的桥梁,但这可能会更复杂,尤其是如果您想要双重数据绑定。