如何返回1到多个导航属性的计数?
This不起作用。 (在客户端我得到值0)。
解决方案here并不错:
[HttpGet]
public IQueryable<object> AccountsSummary()
{
return from t in _contextProvider.Context.Accounts
select
new
{
t,
ContactsCount = t.Contacts.Count()
};
}
但我认为这会禁用从客户端过滤的odata功能吗?
由于
菲利克斯
答案 0 :(得分:0)
如果您想要对象1:n导航属性的计数,您可以使用简单的linq:
[HttpGet]
public int AccountContactCount(int accountId)
{
return _contextProvider.Context.Accounts.Where(p => p.Id == accountId).Select(p => p.Contacts).Single().Count();
}
在此之前添加一个nullcheck,以防您发送了一个不存在的ID或该帐户没有联系人,但这应该有用。