出现无法隐式转换类型泛型列表的错误

Posted

技术标签:

【中文标题】出现无法隐式转换类型泛型列表的错误【英文标题】:getting error of can not implicit convert type generic list 【发布时间】:2021-03-15 07:05:17 【问题描述】:

我有课。

 public partial class RecentlyViewedReport
  
    public int Id  get; set; 
    public string Email  get; set; 
    public int ReportId  get; set; 
    public DateTime DateTime  get; set; 

    public virtual Report Report  get; set; 

我有一个从 sql 表中检索数据的方法。

        public List<RecentlyViewedReport> GetRecentlyViewedReports(string userEmailId)
    
        var result = (from pd in _context.RecentlyViewedReports
                 join od in _context.Reports on pd.ReportId equals od.Id
                 orderby pd.DateTime descending
                 select 
                 new
                 
                     Id= pd.Id,
                     Email= pd.Email,
                     ReportId=pd.ReportId,
                     DateTime=pd.DateTime,
                     Report= od as Report //This lines giving me error
                 ).ToList();

        return result;
    

获取Report数据的正确方法是什么

【问题讨论】:

od 是一个列表。如果您只期待一份报告,那么您可以尝试“od.First() as Report” 我得到了解决方案。 select new RecentViewedReport() Id = pd.Id, Email = pd.Email, ReportId = pd.ReportId, DateTime = pd.DateTime, Report = od ).ToList();跨度> 【参考方案1】:

试试这个...

 var result = _context.RecentlyViewedReports.Include(c => c.Report)
                       .OrderByDescending(c => c.DateTime)
                       .Select(c => new
                         
                           Id = c.Id,
                           Email = c.Email,
                           ReportId = c.ReportId,
                           DateTime = c.DateTime,
                           Report = c.Report
                         ).ToList();

【讨论】:

未来的读者会真正受益于解释为什么您的代码解决了问题以及 OP 首先在他们的方法中做错了什么。

以上是关于出现无法隐式转换类型泛型列表的错误的主要内容,如果未能解决你的问题,请参考以下文章

windows编程问题 错误提示“int无法隐式转换为bool”

向启用文本框 (C#) 的 Web 部件添加按钮,出现错误:无法将类型“bool”隐式转换为“字符串”

Scala:从泛型类型到第二泛型类型的隐式转换

泛型类型的隐式转换?

错误128无法将类型“string”隐式转换为“System.Windows.Forms.DataGridViewTextBoxColumn”

无法在 varbinary(max) 中插入空值并出现错误:不允许从数据类型 nvarchar 到 varbinary(max) 的隐式转换