实体框架不返回对象

时间:2010-06-24 20:59:39

标签: .net entity-framework ado.net

您好我发现了EF的问题。

这是我的Model

我装了资产:

POCO.Asset asset = _context.Assets.Where(a => a.UID == assetUid).First();

然后我浏览所有属性

foreach (POCO.Property p in asset.Properties) /* request to db */ { /*...*/ }

类:

foreach (POCO.Category p in > asset.Categories) /* request to db */ { /*...*/ }

相关资产:

foreach (POCO.Relation relatedAsset in entityAsset.Relations) /* request to db */ { /*...*/ }

所有导航属性都可以正常工作。我可以通过个人资料看到db的请求。一切都很好。

但如果我通过Relations并尝试加载RelatedAssetProperties,那么我就遇到了问题。 基本上我的资产有4个关系,每个关系有2-3个属性。

foreach (POCO.Relation relatedAsset in entityAsset.Relations) /* request to db */
{
 /**/
 ICollection<RelatedAssetProperty> rap = relatedAsset.RelatedAssetProperties;
 foreach (RelatedAssetProperty relatedAssetProperty in rap)  /* request to db */
 {
  /**/
 }

}

在RelatedAssetProperties执行期间,我看到所有4个db请求获取属性。我在SQL管理器中运行所有请求,每个请求返回数据。

但由于某些原因,只有第一关系说唱rap有项目(RelatedAssetProperty)。对于其他关系,它是空的。

我不知道为什么。

1 个答案:

答案 0 :(得分:2)

你能确保你的实体有一个有意义的主键吗? I had a similar problem in a view只返回了DB中的第一个记录集。