我的ui中有一个gridview,它绑定了BLL-> DAL调用的结果,如下所示: UI
private void BindGrid()
{
gvUserList.ItemType = POCO.User;
gvUserList.DataSource = GetUsers();
gvUserList.DataBind();
}
DAL
public static List<User> GetAllUsers()
{
using (var dbContext = new MyEntities())
{
return dbContext.Users.Include("Manager").Include("Status").Include("Office").ToList();
}
}
延迟加载完美,但是我得到了延迟加载错误:
ObjectContext实例已被释放,无法再使用 对于需要连接的操作。
例如,当用户没有经理或用户没有数据库中的状态时。在绑定网格以处理空实体时,我需要做些什么吗?
答案 0 :(得分:0)
似乎错误发生在我未包含的代码中,即
<asp:TemplateField HeaderText="Manager">
<ItemTemplate>
<asp:Label ID="lblUserManager" runat="server" Text='<%# Eval("Manager.FullName") %>' NullDisplayText="None"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
将Eval更改为Bind后,它起作用了。
<asp:TemplateField HeaderText="Manager">
<ItemTemplate>
<asp:Label ID="lblUserManager" runat="server" Text='<%# Eval("Manager.FullName") %>' NullDisplayText="None"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
希望这有助于其他人遇到同样的问题。