问题描述
|
我创建了以下“ 0”以用于“实体框架代码优先”:
public class Context : DbContext
{
public DbSet<Animal> Animals { get; set; }
}
现在,我想在Asp.Net应用程序中使用此ѭ0来使用ѭ3来执行CRUD操作。我需要创建一个“ 4”来进行数据绑定。我该怎么办?
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
用作ѭ3source的源,并实现ContextCreating
事件的处理程序:
protected void DataSource_ContextCreating(object sender,EntityDataSourceContextCreatingEventArgs e)
{
var context = new Context();
e.Context = ((IObjectContextAdapter)context).ObjectContext;
}
然后,您只需要在页面中配置数据源。 EntitySetName
应该与上下文中显示的DbSet
属性名称相同。
另一种方法是使用ObjectDataSource
,这将在GridView
和DbSet<Animal>
之间架起一座桥梁,但这可能会更加复杂,尤其是在您需要双向数据绑定的情况下。