【问题标题】:How to join ListQueryable table and return toList();如何加入ListQueryable表并返回toList();
【发布时间】:2020-01-29 04:58:30
【问题描述】:

这是我的代码,我尝试加入两个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(),因为它会返回错误

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

【问题讨论】:

    标签: c# .net linq asp.net-core


    【解决方案1】:

    您需要更改代码以返回列表,将方法的返回类型更改为Task&lt;List&lt;TestModel&gt;&gt; 并将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();
    
    }
    

    【讨论】:

    • 在我发布答案后看到你的答案 我正在写我的答案,否则我就不会写了
    • @PashupatiKhanal 不用担心,这种情况经常发生 :)
    【解决方案2】:

    您的方法返回类型为TestModel,因此无法接受ToList(),请将您的方法更改为List&lt;TestModel&gt;

    public async Task<List<TestModel>> Report(TestModel model)
    {
       //code here
       return  (
                 //code here
               ).ToList();
    }
    

    【讨论】:

      猜你喜欢
      • 2019-09-13
      • 2016-11-20
      • 1970-01-01
      • 2020-01-31
      • 2013-04-28
      • 1970-01-01
      • 2018-10-20
      • 2018-08-19
      • 1970-01-01
      相关资源
      最近更新 更多