Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 嵌套关系永远不会结束实体框架_C#_Asp.net_Asp.net Mvc_Entity Framework_Asp.net Web Api - Fatal编程技术网

C# 嵌套关系永远不会结束实体框架

C# 嵌套关系永远不会结束实体框架,c#,asp.net,asp.net-mvc,entity-framework,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Entity Framework,Asp.net Web Api,我有三张桌子:课程、系和大学 当我使用实体框架从数据库中提取信息时,我试图将一个课程映射到一个CourseDTO。我试图将其设置为CourseDTO自动检查关系是否存在且不为null,然后在DTO中连接关系 问题是,一旦我运行: db.Courses.Include(c=>c.Department).Include(c=>c.University) 它映射这些关系的每一个嵌套排列,所以我的自动映射到DTO只会创建一个堆栈溢出,因为它会永远持续下去。课程地图绘制该系的课程地图绘制该系

我有三张桌子:课程、系和大学

当我使用实体框架从数据库中提取信息时,我试图将一个课程映射到一个CourseDTO。我试图将其设置为CourseDTO自动检查关系是否存在且不为null,然后在DTO中连接关系

问题是,一旦我运行:

db.Courses.Include(c=>c.Department).Include(c=>c.University)
它映射这些关系的每一个嵌套排列,所以我的自动映射到DTO只会创建一个堆栈溢出,因为它会永远持续下去。课程地图绘制该系的课程地图绘制该系的课程地图绘制该系的地图等等


避免此问题的最佳解决方案是什么?

我建议通过

context.Configuration.LazyLoadingEnabled = false
这将防止未显式包含的子对象在访问时被实体框架扩展

或者创建一个自定义映射方法,以便仅在DTO中包含所需的对象