我为数据库优先的Entity Framework模型启用了延迟加载。对于此示例,我将使用表State和City,其中City表是State表的子表(通过外键连接)。
使用以下查询时:
from State in DBEntity.State
where State.StateId == 1
select State
我得到State对象,其中包含City对象列表。使用上面的查询时会填充此列表。在某些情况下,我只需要国家名单而不想要城市。在这些情况下,获取子数据(城市)会显着降低性能。在其他一些情况下,即使性能很慢,我也需要所有子数据。
如何实现以下目标:
答案 0 :(得分:1)
在City
虚拟上设置State
属性。
导航属性应定义为public,virtual。如果属性未定义为虚拟,则Context不会进行延迟加载。
如果您使用City
语句或在加载include()
后尝试访问这些对象,则只会加载State
个对象列表。