使用Entity Framework仅选择父数据而不选择子数据

时间:2016-09-28 17:00:04

标签: entity-framework

我为数据库优先的Entity Framework模型启用了延迟加载。对于此示例,我将使用表State和City,其中City表是State表的子表(通过外键连接)。

使用以下查询时:

from State in DBEntity.State
where State.StateId == 1
select State

我得到State对象,其中包含City对象列表。使用上面的查询时会填充此列表。在某些情况下,我只需要国家名单而不想要城市。在这些情况下,获取子数据(城市)会显着降低性能。在其他一些情况下,即使性能很慢,我也需要所有子数据。

如何实现以下目标:

  • 在一个功能中获取所有州和城市数据
  • 只获取状态数据,而不是另一个函数中的City数据(无子数据)

1 个答案:

答案 0 :(得分:1)

City虚拟上设置State属性。

EntityFrameworkTutorial.net

  

导航属性应定义为public,virtual。如果属性未定义为虚拟,则Context不会进行延迟加载。

如果您使用City语句或在加载include()后尝试访问这些对象,则只会加载State个对象列表。

相关问题