BreezeJS获取导航属性的itemcount

时间:2016-05-25 14:02:06

标签: entity-framework odata breeze

如何返回1到多个导航属性的计数?

This不起作用。 (在客户端我得到值0)。

解决方案here并不错:

[HttpGet]
public IQueryable<object> AccountsSummary()
{
    return from t in _contextProvider.Context.Accounts
        select
            new
            {
                t,
                ContactsCount = t.Contacts.Count()
            };
} 

但我认为这会禁用从客户端过滤的odata功能吗?

由于

菲利克斯

1 个答案:

答案 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或该帐户没有联系人,但这应该有用。