У меня есть метод, который извлекает динамическую коллекцию ({System.Linq.Enumerable.WhereSelectListIterator}) через интерфейс Simple.Odata. Когда я выполняю его итерацию, чтобы перевести его в список (T предоставляется в метод во время выполнения), он точно повторяется, но в тот момент, когда я добавляю повторяющийся элемент в список внутри foreach, он повторяет только первый элемент и НЕ выполняетдобавить любые последующие элементы.
public async Task<List<T>> GetEntities<T>(string filter, int TopN = 1000) where T : new(){
dynamic e = ODataDynamic.Expression;
dynamic et = ODataDynamic.ExpressionFromReference(typeof(T).Name);
dynamic entities = await client
.For(e.Company)
.Key(companyName)
.NavigateTo(et)
.Filter(filter)
.Top(TopN)
.FindEntriesAsync();
List<T> entlist = new List<T>();
foreach (dynamic ent in entities)
{
//ent accurately steps through the collection
// but t gets stuck on only the FIRST value of ent
// all future assignments of t=ent reverts to the first value!
var t = new T();
t = ent; // only results in the first value of ent.
entlist.Add(t);
//ends up with a list containing n times the first value of ent
}
}