Я включил странное поведение в мой сервис wcf.Это мой контракт на реализацию:
public IEnumerable<Dto.ProductType> GetAllProductTypes()
{
return m_InventoryRepository.GetAllProductTypes().Select(DomainToDtoConverter.ConvertToDto);
}
Если я скажу 3000 типов продуктов, то я должен ожидать, что конвертер моего домена в dto будет вызываться 3000 раз.Но это не так;это называется 6000 раз.Если я тогда гарантирую, что я загружаю все элементы, прежде чем я вернусь, как это:
...Select(DomainToDtoConverter.ConvertToDto).ToList();
... тогда конвертер будет вызываться в 3000 раз больше, чем я ожидал.
Кто-нибудь знает, почему это происходит?
Я предполагаю, что мы изменим все наши контракты операций, чтобы вернуть массив вместо IEnumerable