EF Fluent Mapping不使用Include加载所有孩子的预先加载

时间:2015-11-28 21:50:54

标签: c# entity-framework ef-fluent-api

通过使用三列连接,我创建了两个相互关联的实体,两个实体都是对数据库的视图。对于Travel我有IdFromCityIdToCityIdTravelCost我有TravelIdFromCityId和{ {1}}。流畅的映射如下

ToCityId上课:

TravelEntityConfiguration

和旅行费用

HasMany(x => x.Amounts)
    .WithRequired()
    .HasForeignKey(x => new
    {
        x.TravelId,
        x.FromCityId,
        x.ToCityId
    });

当我查询这些实体并包含导航属性

TravelCostEntityConfiguration

HasRequired(x => x.Travel)
    .WithMany()
    .HasForeignKey(x => new
    {
        x.TravelId,
        x.FromCityId,
        x.ToCityId
    });

对于每个结果,仅加载第一个子集合。我检查了生成的查询,即使查询是正确的,它返回所有子项的完整集合并且连接正确。我在这里缺少什么暂时需要一些帮助。基本上我怀疑映射不正确但尚未发现问题。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

谢谢你https://codex.wordpress.org/Child_Themes,你解决了我的问题。问题在于TravelCost视图的Id在运行中生成并且最终相同,因此EF认为它是相同的记录,映射完全正确。