所以我有这个方法:
public async Task<List<dynamic>> GetIdsOfPersoane()
{
return await GetRecords(true).Select(p => new {p.Id, p.Nume}).ToListAsync();
}
GetRecords从数据库中检索一些数据。
基本上,我想使用投影,但我不想只为这个方法创建一个新对象,所以我做了研究,我应该返回dynamic,我认为这肯定会对object起作用,但我想避免装箱和取消装箱。
问题是我得到了一个错误。
Cannot convert expression type 'System.Collections.Generic.List<{int Id, string Nume}>' to return type 'System.Collections.Generic.List<dynamic>
为什么会这样?动力不应该这样吗?
谢谢。
2条答案
按热度按时间xqnpmsa81#
要使此函数可编译,可以执行以下操作-为
ToListAsync
提供泛型类型参数:或者
你最好做什么-创建一个类型返回(与记录它可以做得很容易):
ubof19bj2#
把对公共方法中返回类型的强类型化的关注放在一边。你可以通过
ExpandoObject
来解决这个问题。