参数超出范围异常,参数名称:名称
Argument out of range exception, Parameter name : name
每次尝试用不同的行执行以下代码;得到相同的异常:
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'
请帮我解决这个问题。
所以您使用的是第三方库,Fast-Member 旨在以比反射更快的方式动态访问类型成员。
问题是您将集合转换为 IEnumerable<Object>
,因此所有类型信息都消失了,并且找不到成员名称 Image
。
把这个cast去掉就行了,没用的。您可以完全删除行 IEnumerable<Object> data = result.ToList();
并将 result
提供给 ObjectReader
.
每次尝试用不同的行执行以下代码;得到相同的异常:
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'
请帮我解决这个问题。
所以您使用的是第三方库,Fast-Member 旨在以比反射更快的方式动态访问类型成员。
问题是您将集合转换为 IEnumerable<Object>
,因此所有类型信息都消失了,并且找不到成员名称 Image
。
把这个cast去掉就行了,没用的。您可以完全删除行 IEnumerable<Object> data = result.ToList();
并将 result
提供给 ObjectReader
.