我在使用 EF4.1 时遇到了一些内存问题,问题主要发生在这种情况下:假设我有学生,可以参加一门或多门课程,并且多个用户可以参加同一门课程。所以,我有类似的东西:
Student * < - > 1-* Course
想象一下,我的 BD 中有 2 名学生和 1 门课程。像这样:
安娜参加英语课程 鲍勃参加英语课程
我的对象图是这样的:
Ana
\
English Course
/
Bob
这可以。
我保存了这个,那个保存得很好,学生表上有两行,课程表上有一行。
问题是当我尝试获取这些数据时。
当我做类似的事情时:
var students = (from s in students
select s).Include("Courses");
这是结果图:
Ana -> English Course
Bob -> English Course
对象被复制。想象一下,当这棵树的深度更大时,有数千名学生和数千门课程,以及数百名学生参加同一门课程。
这个查询的内存使用会很大,如何解决这个引用问题?