您好,我正在编写一个 ASP.Net MVC 应用程序,并且我有一个专用于数据库连接的特殊类。在我的 HomeController 中,我调用了这个特殊 DB 类的静态方法,它将所需的数据返回到对象中。我使用实体框架来实现这一点。但是,当我尝试使用控制器中的列表时,我遇到了一个奇怪的异常。我认为问题在于我有一个虚拟内部集合,该集合在实体框架方法完成后被处置。我可以访问主组字段,但无法访问内部列表。这是我的模型:
public partial class Teacher
{
public Teacher()
{
this.TeacherRelationships = new List<TeacherRelationship>();
this.CourseTemplates = new List<CourseTemplate>();
this.Orders = new List<Order>();
}
public int ID { get; set; }
public string Name { get; set; }
public string DescriptionText { get; set; }
public Nullable<int> Phone { get; set; }
public string Email { get; set; }
public string PictureFilePath { get; set; }
public virtual ICollection<TeacherRelationship> TeacherRelationships { get; set; }
public virtual ICollection<CourseTemplate> CourseTemplates { get; set; }
public virtual ICollection<Order> Orders { get; set; }
}
当我尝试获取 CourseTemplate 结果时,我得到了这个异常:
异常详细信息:System.ObjectDisposedException:ObjectContext 实例已被释放,不能再用于需要连接的操作。
我试图单独调查它,但我发现的一切都是返回列表而不是查询的建议。这也是我的 DBConnection 方法的代码:
public static List<Teacher> returnAllTeachers()
{
using (var db = new Context())
{
var query = from th in db.Teachers
select th;
return query.ToList();
}
}
我究竟做错了什么?