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