EF Fluent Mapping 未使用 Include 加载所有子级
EF Fluent Mapping not loading all children with eager loading using Include
我创建了两个实体,它们通过使用三列连接而彼此相关,它们都是数据库的视图。对于 Travel
,我有 Id
、FromCityId
和 ToCityId
,对于 TravelCost
,我有 TravelId
、FromCityId
和 ToCityId
。流畅的映射如下
TravelEntityConfiguration
class:
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)....
对于每个结果,仅加载子集合中的第一个。我检查了生成的查询,即使查询是正确的 returns 包含所有子项的完整集合并且连接是正确的。我在这里错过了什么。需要一些帮助暂时没有线索。基本上我怀疑映射不正确,但还没有发现问题。
谢谢Asad,你解决了我的问题。问题出在 TravelCost 视图的 Id 上,它是动态生成的,最终是相同的,所以 EF 认为它是同一条记录,映射是完全正确的。
我创建了两个实体,它们通过使用三列连接而彼此相关,它们都是数据库的视图。对于 Travel
,我有 Id
、FromCityId
和 ToCityId
,对于 TravelCost
,我有 TravelId
、FromCityId
和 ToCityId
。流畅的映射如下
TravelEntityConfiguration
class:
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)....
对于每个结果,仅加载子集合中的第一个。我检查了生成的查询,即使查询是正确的 returns 包含所有子项的完整集合并且连接是正确的。我在这里错过了什么。需要一些帮助暂时没有线索。基本上我怀疑映射不正确,但还没有发现问题。
谢谢Asad,你解决了我的问题。问题出在 TravelCost 视图的 Id 上,它是动态生成的,最终是相同的,所以 EF 认为它是同一条记录,映射是完全正确的。