【发布时间】:2011-09-14 13:04:21
【问题描述】:
我有一个经典的父子关系,我想通过使用 asp:GridView 控件来 CRUD。对父级进行 CRUD 很容易,但挑战是将 asp:GridView 嵌套在能够处理子关系的 asp:GridView 中。
为了使问题更简单,我构建了一个示例。考虑以下 EF 代码:
public class Context : DbContext
{
public DbSet<Animal> Animals { get; set; }
public DbSet<Tag> Tags { get; set; }
}
public class Animal
{
public int AnimalID { get; set; }
public string Name { get; set; }
public virtual IEnumerable<Tag> Tags { get; set; }
}
public class Tag
{
public int TagID { get; set; }
public string Name { get; set; }
}
我正在使用asp:Gridview 来查看/编辑Animal 对象:
<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>
DataSource 与后面的代码绑定:
protected void DataSource_ContextCreating(object sender, EntityDataSourceContextCreatingEventArgs e)
{
var context = new Context();
e.Context = ((IObjectContextAdapter)context).ObjectContext; }
}
我想包含一个嵌套的asp:Gridview 作为列之一,以添加/删除/编辑属于该Animal 的Tag 对象。 我怎样才能做到这一点?
【问题讨论】:
标签: c# asp.net entity-framework ef-code-first crud