我有以下情况。
我在数据库 A 中有一个包含大量条目的表。该表是轻量级的,每个条目只有一些数据。
另一个表 B 与 A 有多对一的关系,并且可以包含大量数据。
我的应用程序中有一个客户端和服务器,它使用WCF进行通信。
我的问题是当客户端在服务器上调用一个应该返回所有 A 的方法时,我得到的数据比我需要的多得多。在服务器上我基本上只有一行代码:
return entityContext.A.ToList();
我的问题是,在客户端上,如果我调试并检查返回的集合,则每个元素都使用昂贵的表中的所有数据填充属性 B 。
我只需要 A 表中的基本数据来显示客户端上的列表,但最终通过网络发送了大量数据。
所以问题是,当我获取要发送到客户端的数据时,如何让服务器忽略 B 表。基本上,我需要类似Include
的对立面。
答案 0 :(得分:2)
您需要关闭延迟加载。它可以通过设计师或代码通过调用:
来完成entityContext.ContextOptions.LazyLoadingEnabled = false;