C# 如何连接ListQueryable表并返回toList();

C# 如何连接ListQueryable表并返回toList();,c#,.net,linq,asp.net-core,C#,.net,Linq,Asp.net Core,这是我的代码,我尝试连接两个ListQueryable表并返回List()但我只能返回到FirstorDefault() 公共异步任务报告(TestModel) { var linkType=await _LinkRepo.ListQueryable(log=>(string.IsNullOrEmpty(model.Name)| | log.Code.Contains(model.Name))).toListSync(); var click=wait _ClickRepo.ListQuerya

这是我的代码,我尝试连接两个
ListQueryable
表并返回
List()但我只能返回到
FirstorDefault()

公共异步任务报告(TestModel)
{
var linkType=await _LinkRepo.ListQueryable(log=>(string.IsNullOrEmpty(model.Name)| | log.Code.Contains(model.Name))).toListSync();
var click=wait _ClickRepo.ListQueryable(log=>(string.IsNullOrEmpty(model.Code)| | log.Code.Contains(model.Code))).toListSync();
返回(来自linkType中的t)
点击t.Id等于d.linkRepoId加入sr
来自sr.DefaultIfEmpty()中的x
其中t!=null
选择新的测试模型
{
代码=x。代码,
Name=x.Name,
}).FirstOrDefault();
}
问题是代码无法返回
ToList()
,因为它将返回错误

“无法隐式转换类型”


您需要更改代码以返回列表,将方法的返回类型更改为
Task
,并将
FirstOrDefault
更改为
ToList
,如下所示:

public async Task<List<TestModel>> Report(TestModel model)
{
    var linkType = await _LinkRepo.ListQueryable(log => (string.IsNullOrEmpty(model.Name) || log.Code.Contains(model.Name))).ToListAsync();
    var click = await _ClickRepo.ListQueryable(log => (string.IsNullOrEmpty(model.Code) || log.Code.Contains(model.Code))).ToListAsync();

    return  (from t in linkType
                  join d in click on t.Id equals d.linkRepoId into sr
                  from x in sr.DefaultIfEmpty()
                  where t != null
                  select new TestModel
                  {
                      Code = x.Code,
                      Name = x.Name,
                  }).ToList();

}
公共异步任务报告(TestModel)
{
var linkType=await _LinkRepo.ListQueryable(log=>(string.IsNullOrEmpty(model.Name)| | log.Code.Contains(model.Name))).toListSync();
var click=wait _ClickRepo.ListQueryable(log=>(string.IsNullOrEmpty(model.Code)| | log.Code.Contains(model.Code))).toListSync();
返回(来自linkType中的t)
点击t.Id等于d.linkRepoId加入sr
来自sr.DefaultIfEmpty()中的x
其中t!=null
选择新的测试模型
{
代码=x。代码,
Name=x.Name,
}).ToList();
}

您的方法返回类型是
TestModel
,因此它无法接受
ToList()
将您的方法更改为
List
,如下所示:

public async Task<List<TestModel>> Report(TestModel model)
{
   //code here
   return  (
             //code here
           ).ToList();
}
公共异步任务报告(TestModel)
{
//代码在这里
返回(
//代码在这里
).ToList();
}

在我发布答案后看到了你的答案。当你发布答案时,我正在写我的答案,否则我不会看到written@PashupatiKhanal不用担心,这里经常发生这种情况:)
public async Task<List<TestModel>> Report(TestModel model)
{
   //code here
   return  (
             //code here
           ).ToList();
}