我创建了以下 Context
以与 Entity Framework Code First 一起使用:
public class Context : DbContext
{
public DbSet<Animal> Animals { get; set; }
}
现在我想在 Asp.Net 应用程序中使用此 Context
来使用 GridView
执行 CRUD 操作。我需要创建一个 DataSource
来进行数据绑定(bind)。我该怎么办?
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>
但这可能会更复杂,特别是如果您需要双向数据绑定(bind)。
关于c# - 如何将 EF Code First DbContext 绑定(bind)到 Asp.Net 数据源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6327937/