2017-10-16 144 views
0

我试图从与实体框架数据库中删除的项目列表中,但我不能让子列表不加载,实体框架 - 删除列表项

基本上我有当清单该列表中的每个项目都包含一个2列表,我不想加载子列表,而只是列出它自己的列表。

我该如何加载列表而不是其子列表?

回答

1

子列表在评估时有可能是LazyLoaded。你可以把延迟加载了与

DbContext.Configuration.LazyLoadingEnabled = false; 

更多细节here。我通常在我的上下文的构造函数中关闭LazyLoading,并用include语句加载任何我需要的东西。延迟加载也会导致性能问题。如果您通过延迟加载集合进行循环,则最终会在集合中为每个项目打一个数据库命中。

+0

试图将它添加到这里,但似乎没有解决不加载公共的DbContext() 名单:基地( “NAME =的DbContext”) { Configuration.LazyLoadingEnabled = FALSE; } – Max

+0

你可以在那里放置一个断点,并验证它是否使用该构造函数。你也可以发布查询。 –

+0

它确实打破了突破点,现在似乎工作,我想我可能没有重新加载它或什么。不过,我仍然收到以下错误。 System.Data.Entity.Infrastructure.DbUpdateException:'保存不为其关系提供外键属性的实体时发生错误。 EntityEntries属性将返回null,因为单个实体不能被识别为异常的来源。通过在您的实体类型中公开外键属性,可以更轻松地处理保存时的异常。有关详细信息,请参阅InnerException。' – Max