Найти объекты, в которых меньше n дочерних объектов - PullRequest
0 голосов
/ 03 января 2012

Я пытаюсь найти простой способ выбрать единственного представителя по обслуживанию клиентов для назначения данному пользователю.У меня есть следующие модели:

public class Customer
{
    public int Id { get; set; }
    // SNIP
    public virtual Representative Representative { get; set; }
    public bool Active { get; set; }
}

public class Representative
{
    public int Id { get; set; }
    public int MaxActiveCustomers { get; set; }
    // all the customers this representative has interacted with
    public IEnumerable<Customer> Customers { get; set; }
}

Я пытаюсь найти представителей, у которых на данный момент меньше Customers, чем предлагает MaxActiveCustomers.

Моя попытка:

from r in Representatives
where r.MaxActiveCustomers > r.Customers.Count(c => c.Active)
select r

Это дает мне следующее исключение:

NotSupportedException: The specified type member 'Customers' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.

Как правильно это сделать?

1 Ответ

5 голосов
/ 03 января 2012

Вы определили Customers как тип IEnumerable<Customer>, который EF не считает частью модели.Измените тип на ICollection<Customer>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...