我使用Db Context Generator使用EF 4创建了我的模型。 我的模型是这样的:
计划表: ID 名称
组表: ID 名称 ProgramID(与Program.ID相关联)
我想在网格中显示这些列:
Program.Name - Group.Name
但是grdGroups.DataSource = db.Groups.ToList()
不会返回Program.Name
当我尝试这个时,我得到了ObjectDisposedException。
Partial Public Class Group
Public ReadOnly Property ProgramName() As String
Get
Return Program.Name
End Get
End Property
End Class
返回Program.Name以将其包含在网格数据源中的最佳方法是什么?
答案 0 :(得分:5)
当我尝试这个时,我得到了 的ObjectDisposedException
问题是延迟加载 - EF没有实现相关的Program
实体,因此当您尝试访问Program.Name
时,它将尝试重新查询数据库,但上下文已被处理这一点,所以你得到一个例外。
您可以在检索Include()
实体时使用Group
查询,以指定您还要加载相关的Program
实体,即:
var groups = context.Groups.Include(x => x.Program);