Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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#_Entity Framework_Linq - Fatal编程技术网

C# 实体框架-删除项目列表

C# 实体框架-删除项目列表,c#,entity-framework,linq,C#,Entity Framework,Linq,我正试图用entity framework从数据库中删除项目列表,但无法不加载子列表 本质上,我有一个列表,该列表的每个项目都包含一个2列表,我不想加载子列表,只想加载它自己的列表 如何仅加载列表而不加载其子列表?评估子列表时,可能正在加载子列表。您可以使用关闭惰性加载 DbContext.Configuration.LazyLoadingEnabled = false; 更多细节。我通常会在上下文的构造函数中关闭懒散加载,并使用include语句加载所需的任何内容。延迟加载也会导致性能问题

我正试图用entity framework从数据库中删除项目列表,但无法不加载子列表

本质上,我有一个列表,该列表的每个项目都包含一个2列表,我不想加载子列表,只想加载它自己的列表


如何仅加载列表而不加载其子列表?

评估子列表时,可能正在加载子列表。您可以使用关闭惰性加载

DbContext.Configuration.LazyLoadingEnabled = false; 

更多细节。我通常会在上下文的构造函数中关闭懒散加载,并使用include语句加载所需的任何内容。延迟加载也会导致性能问题。如果在延迟加载集合中循环,则该集合中的每个项都会命中一个数据库。

尝试将其添加到此处,但似乎无法解决未加载公共DbContext()的列表:base(“name=DbContext”){Configuration.LazyLoadingEnabled=false;}你能在那里设置一个断点并验证它是否使用了这个构造函数吗。你也可以发布这个查询。它确实达到了临界点,现在似乎可以工作了,我想我可能没有重新加载它或其他什么。然而,我仍然得到以下错误。System.Data.Entity.Infrastructure.DbUpdateException:“保存未公开其关系的外键属性的实体时出错。EntityEntries属性将返回null,因为无法将单个实体标识为异常源。通过在实体类型中公开外键属性,可以更轻松地在保存时处理异常。有关详细信息,请参阅InnerException。这似乎意味着,在1对1关系(而不是1对0..1关系)中,您有另一个实体引用您试图删除的实体。您将无法删除此实体。您可以尝试使用约定public int添加一个可为空的密钥?在公共SomeEntity SomeEntity{get;set;}旁边的SomeEntityId{get;set;},它应该将其切换为1到0..1。它也可能与集合有关,但除非您删除了其中一个级联删除约定,否则我希望这些约定能够自行处理。