Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 参数超出范围异常,参数名称:name_C#_Linq_Fastmember - Fatal编程技术网

C# 参数超出范围异常,参数名称:name

C# 参数超出范围异常,参数名称:name,c#,linq,fastmember,C#,Linq,Fastmember,每次尝试使用不同的行执行以下代码时;获取相同的异常: var result = (from prod in context.ProductsTbls join img in context.ProductImagesTbls on prod.Id equals img.ProductId where prod.UserId == 4 &am

每次尝试使用不同的行执行以下代码时;获取相同的异常:

 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'

请帮助我解决这个问题。

所以您使用的是第三方库,它旨在以比反射更快的方式动态访问类型成员

问题是您将集合强制转换为
IEnumerable
,因此所有类型信息都将消失,并且找不到成员名称
Image


去掉这个石膏,没用的。您可以删除行
IEnumerable data=result.ToList()并将
结果
提供给
ObjectReader

请发布堆栈跟踪。@JohnWu解决我的问题有什么重要意义?这是什么
ObjectReader
?显示堆栈跟踪可能揭示了这一点。如果它是第三方的东西,它可能有一个bug。@GertArnold这是所谓的“Fast member”,我使用它将数据放入DataTable类,它与第三方无关。引发异常的
Load()
方法没有名为
name
的参数。因此,如果这是错误,我们需要查看最初是什么内部调用引发了异常,这样我们就可以知道哪些参数验证规则没有得到满足。请发布堆栈跟踪。我怎么注意不到这一点,谢谢,伙计,它工作了,我完全按照你的建议做了。