我很困惑,例如如何在不出现“匿名”异常的情况下加入两个表;例如以下代码部分:
var result = (from prod in context.ProductsTbls
join imag in context.ProductImagesTbls
on prod.Id equals imag.ProductId
where prod.UserId == 4 && imag.IsDefaultImage == true
select new
{
Id = prod.Id,
ProductName = prod.ProductName,
ProductDescription = prod.ProductDescription,
ProductCategory = prod.ProductCategory,
ProductPricePerDay = prod.ProductPricePerDay,
ProductPricePerWeek = prod.ProductPricePerWeek,
ProductPricePerMonth = prod.ProductPricePerMonth,
CreationDate = prod.CreationDate,
ModificationDate = prod.ModificationDate,
Image = imag.Image
}).ToList();
IEnumerable<ProductsTbl> data =
(IEnumerable<ProductsTbl>)result.ToList(); // Exception appears here
DataTable table = new DataTable();
using (var reader = ObjectReader.Create(data, "Id", "Image"))
{
table.Load(reader);
}
执行上述代码后,我得到这个异常:
System.InvalidCastException: 'Unable to cast object of type
'System.Collections.Generic.List`1[<>f__AnonymousType1`10[System.Int32,System.Str
ing,System.String,System.String,System.Nullable`1[System.Int32],System.Nullable`1
[System.Int32],System.Nullable`1[System.Int32],System.Nullable`1[System.DateTime]
,System.Nullable`1[System.DateTime],System.Byte[]]]' to type
'System.Collections.Generic.IEnumerable`1[ClassLibrary1.ProductsTbl]'.'