Аргумент вне диапазона исключений, Имя параметра: имя - PullRequest
0 голосов
/ 12 июня 2018

Каждый раз пытаясь выполнить следующий код с разными строками;получить то же исключение:

 var result = (from prod in context.ProductsTbls
                          join img in context.ProductImagesTbls
                          on prod.Id equals img.ProductId
                          where prod.UserId == 4 && img.IsDefaultImage ==true
                          select new
                          {                            
                              Image = img.Image
                          }).ToList();


            IEnumerable<Object> data = result.ToList();
            DataTable table = new DataTable();

            using (var reader = ObjectReader.Create(data , "Image"))
            {
                table.Load(reader); // Exception appears here
            }

и получить это исключение:

System.ArgumentOutOfRangeException: 'Specified argument was out of the range of valid values. Parameter name: name'

Пожалуйста, помогите мне в этом вопросе.

1 Ответ

0 голосов
/ 13 июня 2018

Таким образом, вы используете стороннюю библиотеку, Fast-Member , которая предназначена для динамического доступа к членам типа быстрее, чем отражение.

Проблема в том, что вы разыгрываете свою коллекциюна IEnumerable<Object>, так что вся информация о типах пропала и имя члена Image не может быть найдено.

Просто удалите этот акт, это бесполезно.Вы можете полностью удалить строку IEnumerable<Object> data = result.ToList(); и предложить result до ObjectReader.

...