Long story short, we have a C# WebApi that provides mapped instances from our DAL into DTOS.
Each controller exposes a IEnumerable Get()
I have a test that finds all the controllers, and call this get method.
This flushes out any mapping errors that only occur on execution.
A while I noticed that to be sure you had to actually execute the enumeration otherwise the the mapping never takes place.
So i have this code
if (results is IEnumerable enumerable)
{
var counter = enumerable.Cast<object>().Count();
Trace.Write($"{counter} results found.");
}
This executes the cast (which invokes the mapping) and gives me a count for output reasons.
This worked until the result set got massive - it nows just times out.
Most of my IEnumerables are actually IQueryable underneath
I need a way to 'Take(10)' on an IQueryable that can work on reflected data/executed types. This will let the mapping work but on a smaller data set.
Help!
Aucun commentaire:
Enregistrer un commentaire