我希望在此操作方法中使用查询获取产品列表,然后使用AutoMapper将其映射到let screenPoint = sceneView.projectPoint(my3dNode)
IEnumerable
:
ViewModelProduct
模型看起来像这样:
private async Task<IEnumerable<ViewModelProduct>> GetProductsAsync(int id)
{
if (id == 0)
{
return null;
}
else
{
var category = _context.ProductCategories.Where(p => p.Id == id).FirstOrDefault();
if (category != null)
{
var products = await (from c in _context.ProductsInCategories
join p in _context.Products
on c.ProductId equals p.Id
where c.ProductCategoryId == category.Id
select p).ToListAsync();
var VMProducts = _mapper.Map<IEnumerable<ViewModelProduct>>(products);
return VMProducts;
}
else
{
return null;
}
}
}
我的映射配置文件如下所示:
public class Product
{
public int Id { get; set; }
public string Title { get; set; }
public string Info { get; set; }
public decimal Price { get; set; }
public List<FrontPageProduct> InFrontPages { get; set; }
public List<ProductInCategory> InCategories { get; set; }
}
public class ProductInCategory
{
public int Id { get; set; }
public int ProductId { get; set; }
public int SortOrder { get; set; }
public int ProductCategoryId { get; set; }
public Product Product { get; set; }
public ProductCategory ProductCategory { get; set; }
public FrontPageProduct FrontPageProduct { get; set; }
}
public class ViewModelProduct
{
public int Id { get; set; }
public string Title { get; set; }
public string Info { get; set; }
public decimal Price { get; set; }
public int SortOrder { get; set; }
public IEnumerable<ViewModelFrontPageProduct> InFrontPages { get; set; }
public IEnumerable<ViewModelCategoryWithTitle> Categories { get; set; }
}
但是,我从AutoMapper收到此消息:
ProductInCategory - &gt; ViewModelProduct(目标成员列表) MyStore.Models.ProductInCategory - &gt; MyStore.Models.ViewModels.ViewModelProduct(目标成员列表)
未映射的属性:
标题
信息
价格
InFrontPages
分类
AutoMapper.ConfigurationValidator.AssertConfigurationIsValid(IEnumerable typeMaps)
AutoMapperMappingException:错误映射类型。
映射类型: 列表
CreateMap<Product, ViewModelProduct>();
1 System.Collections.Generic.List1 -> IEnumerable
1 [[MyStore.Models.ViewModels.ViewModelProduct,MyStore,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]]
我是否错过了地图,或者我的查询是否已关闭?
答案 0 :(得分:1)
该例外表明它正在尝试将ProductInCategery
的列表转换为ViewModel而不是Product
。
正如评论中所述,将var
更改为List<Product>
可解决问题。如果没有看到您的确切设置,我就无法知道为什么选择了错误的类型,但这会导致隐式转换问题。
很高兴它得到了修复! :)