我有以下实体:
public class Return : IAuditable
{
public int Id { get; set; }
/* Other properties */
public virtual ReturnReason ReturnReason { get; set; }
public virtual ICollection<ReturnItem> ReturnItems { get; set; }
public Return()
{
ReturnItems = new List<ReturnItem>();
}
}
然后我执行一个EntityQuery来按Id获取Return
,如下所示:
var entityKey = new EntityKey('Return', id);
return EntityQuery.fromEntityKey(entityKey)
.expand('ReturnItems, ReturnReason')
.using(manager)
.execute()
.to$q(querySucceeded);
function querySucceeded(data) {
console.log(data);
}
进行以下oData调用:
Breeze/Returns?$filter=Id%20eq%2015&$expand=ReturnItems%2CReturnReason
问题是,return.returnItems
是一个空数组,即使我知道这个Return
实体附加了项目。但是return.returnReason
已正确填充。当我在浏览器中访问该URL时,我可以看到填充的ReturnItems导航属性(我因为糟糕的裁剪能力而ploglog!):
当我console.log(data)
时,我不确定为什么它是空的?
答案 0 :(得分:1)
我认为问题在于你的Return引用了一个ReturnItems的集合(显然EF很高兴返回),但是ReturnItem缺少返回的引用。
public class ReturnItem
{
public int Id { get; set; }
/* Other properties */
public virtual Return Return { get; set; }
}
另一个注意事项是你的Return构造函数将ReturnItems实例化为IList&lt;&gt;但本质上它应该已经构建,只是没有价值。