C# 无法隐式转换类型';System.Collections.Generic.List<&书信电报;匿名类型:字符串访问>&燃气轮机';至';System.Collections.Generic.IEnumerable<;字符串>';

C# 无法隐式转换类型';System.Collections.Generic.List<&书信电报;匿名类型:字符串访问>&燃气轮机';至';System.Collections.Generic.IEnumerable<;字符串>';,c#,asp.net-mvc,entity-framework,entity-framework-core,C#,Asp.net Mvc,Entity Framework,Entity Framework Core,我想返回函数中的字符串列表: private async Task<IEnumerable<string>> GetAccessLevels(Guid roleId) { return await AccessLevels.Where(x => x.RoleId == roleId).Select(x=>new {x.Access }).ToListAsync(); } 如何解决此问题?只需更改以下内容: Select(x => new { x

我想返回函数中的字符串列表:

private async Task<IEnumerable<string>> GetAccessLevels(Guid roleId)
{
    return await AccessLevels.Where(x => x.RoleId == roleId).Select(x=>new {x.Access }).ToListAsync();
}
如何解决此问题?

只需更改以下内容:

Select(x => new { x.Access })
为此:

Select(x => x.Access)
原因是,
new
使您的查询返回的是
IEnumerable
,而您需要的是
IEnumerable
Strings
,只需更改以下内容:

Select(x => new { x.Access })
为此:

Select(x => x.Access)

原因是,
new
使您的查询返回的是的
IEnumerable
,而您需要的是
IEnumerable
字符串
我认为您只需要执行以下操作:

private async Task<IEnumerable<string>> GetAccessLevels(Guid roleId)
{
    return await AccessLevels.Where(x => x.RoleId == roleId).Select(x=> x.Access).ToListAsync();
}
专用异步任务GetAccessLevel(Guid roleId)
{
return await AccessLevels.Where(x=>x.RoleId==RoleId).Select(x=>x.Access.ToListAsync();
}

无需在
选择中创建匿名对象

我想你只需要做以下事情:

private async Task<IEnumerable<string>> GetAccessLevels(Guid roleId)
{
    return await AccessLevels.Where(x => x.RoleId == roleId).Select(x=> x.Access).ToListAsync();
}
专用异步任务GetAccessLevel(Guid roleId)
{
return await AccessLevels.Where(x=>x.RoleId==RoleId).Select(x=>x.Access.ToListAsync();
}
无需在
选择中创建匿名对象