1

这是我的代码,我尝试加入两个ListQueryable表并返回,List();但我只能返回FirstorDefault();

public async Task<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,
             }).FirstOrDefault();

    }

问题是代码无法返回ToList(),因为它将返回错误

'不能隐式转换类型'...

4

2 回答 2

1

您需要更改代码以返回列表,将方法的返回类型更改为Task<List<TestModel>>并更改FirstOrDefaultToList,如下所示:

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();

}
于 2020-01-29T05:05:41.237 回答
1

您的方法返回类型是这样的TestModel,因此它无法接受ToList()将您的方法更改List<TestModel> 为:

public async Task<List<TestModel>> Report(TestModel model)
{
   //code here
   return  (
             //code here
           ).ToList();
}
于 2020-01-29T05:06:25.373 回答