2015-11-28 52 views
0

我創建了兩個通過使用三列連接而彼此相關的實體,兩個實體都是數據庫視圖。對於Travel我有Id,FromCityIdToCityId,對於TravelCost我有TravelId,FromCityIdToCityId。流利的映射如下EF Fluent Mapping未使用包含熱切加載的所有子進程加載包含

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 
    }); 

當我詢問這些實體包括導航屬性

context.Set<Table>().Include(x => x.TravelCost).... 

對於每個結果,僅加載第一個子集合。我檢查了生成的查詢,即使查詢是正確的,它也會返回所有子節點的完整集合,並且連接正確。我在這裏錯過了什麼。目前需要一些幫助。基本上我懷疑映射不正確,但沒有發現問題。

enter image description here

enter image description here

+0

當您訪問它時,您將獲得一切。 – Shyju

+0

我知道,但我向你保證,如果你需要更多的信息,並非如此,只要問我 –

+0

奇怪的是,它接縫你可以看看記錄和實體 –

回答

1

謝謝Asad,你照亮了我的問題。問題出在TravelCost視圖的Id上,這些視圖在運行中生成並最終保持一致,因此EF認爲它是相同的記錄,因此映射完全正確。