linq - 如何为子对象列表配置 AutoMapper,以及如何在查询中使用 ProjectTo<>?
问题描述
我有一个Template
带有的模型,以及一个带有List<Symbol> symbols
的等效 ViewModel 。当我查询 a时,似乎抛出了一个异常,我不知道为什么。TemplateJS
List<SymbolJS>
Template
ProjectTo<TemplateJS>
例外:“参数类型不匹配”
我也想Include
Symbol
在我的查询中,但我也不完全确定如何映射该对象。这需要在单独的查询中完成吗?
任何帮助表示赞赏!谢谢!
楷模 :
public class Template
{
public int Id { get; set; }
public string Name { get; set; }
public List<Exercise> Exercises { get; set; }
public List<Symbol> Symbols { get; set; }
}
public class Symbol
{
public int Id { get; set; }
public int TemplateId { get; set; }
public Template Template { get; set; }
public char Letter { get; set; }
public string ImgSource { get; set; }
}
public class TemplateJS
{
public int Id { get; set; }
public string Name { get; set; }
public List<SymbolJS> Symbols { get; set; }
}
public class SymbolJS
{
public char Letter { get; set; }
public string ImgSrc { get; set; }
}
自动映射器:
CreateMap<Template, TemplateJS>()
.ReverseMap();
CreateMap<Symbol, SymbolJS>()
.ReverseMap();
询问 :
public async Task<TemplateJS> GetTemplateAsync(int Id)
{
try
{
var q = await _dbContext.Template
// .Include(x => x.Symbols)
.Where(x => x.Id == Id)
.ProjectTo<TemplateJS>(_mapper.ConfigurationProvider)
.SingleOrDefaultAsync();
return q;
}
catch (Exception e)
{
throw e;
}
}
解决方案
推荐阅读
- background - 如何在 Squarespace Henson 模板上仅更改一页上的背景颜色?
- roblox - Roblox Lua 中的“R 无法分配给”错误
- python - 为什么for循环中的迭代器是字符串而不是整数?
- python - AttributeError:“NoneType”对象没有属性“_instantiate_plugins”
- python - 使用 matplotlib 在 DataFrame 中按 ID 列生成单独的坐标图
- python - 为什么此代码适用于所有内容,除了退出命令
- json - 从 Django 到 Camunda 的 Json Post
- javascript - 循环生成空列表
- mysql - 设置 lower_case_table_names=0 时如何解决 Can't connect to MySQL server on 'localhost' (10061)?
- php - cURL Paypal Identity API 响应提供商家信息,而不是付款人