【发布时间】:2020-09-29 12:39:58
【问题描述】:
我有一个包含以下模型和上下文的示例应用程序-
public class Department
{
public int Id { get; set; }
public string Name { get; set;}
public virtual ICollection<Student> Students { get; set; }
}
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public virtual Department Department { get; set; }
}
public class TestContext : DbContext
{
public DbSet<Student> Students { get; set; }
public DbSet<Department> Departments { get; set; }
}
下面是 progarm.cs 代码。当我调试并且调试器到达 - foreach 块内的 Consol.WriteLine 方法时,我收到错误 - 已经有一个打开的 DataReader 与此命令关联,必须先关闭。这是为什么。到达 foreach 代码时,一旦打开连接,上下文不应自动关闭。
class Program
{
static void Main(string[] args)
{
using (var context = new TestContext())
{
var students = context.Students.Where(s => s.Id == 1);
foreach (var student in students)
{
Console.WriteLine("Student : {0} - Department {1}", student.Name, student.Department.Name);
}
Console.ReadLine();
}
}
【问题讨论】:
-
@marsze - 是的。
标签: c# entity-framework entity-framework-6 dbcontext