【问题标题】:Cannot implicitly convert type System.Collections.generic to <ProjectNamespace.List>无法将 System.Collections.generic 类型隐式转换为 <ProjectNamespace.List>
【发布时间】:2022-01-12 23:17:00
【问题描述】:
namespace Automated_VotingSystem.Models
{
    public class DisplayCandidatesList
    {
        public List<DisplayCandidates>? DisplayCandidateslist { get; set;}
    }
}

namespace Automated_VotingSystem.Models
{
    public partial class DisplayCandidates
    {
        public int VoterId { get; set; }
        public int? CollegeId { get; set; }
        public int? EventId { get; set; }
        public int CandidateId { get; set; }
        public string? Manifesto { get; set; }
        public byte[]? Symbol { get; set; }
        public string? Symbol_path { get; set; }        
    }
}

public List<DisplayCandidates> DisplayCandidateslist { get; set; }

[HttpGet("[action]/{GetAllCandidates}")]
public async Task<DisplayCandidatesList> DisplayAllCandidates()
{
    var list_of_candidates = (from c in _context.CandidateTables
                              join ac in _context.ApprovedCandidateTables on c.CandidateId equals ac.CandidateId
                              join s in _context.SymbolTables on c.SymbolId equals s.SymbolId
                              where ac.Approval == true
                              select new
                              {
                                  candidate_id = ac.CandidateId,
                                  manifesto = c.Manifesto,
                                  symbol_path = s.Symbol_path
                              }).ToList();
    return  list_of_candidates;
}

第一个 sn-p 是我的班级,第二个 sn-p 是我的模型,第三个 sn-p 是我的控制器。在执行代码时,我在返回候选列表后出现错误

不能隐式转换类型 'System.Collections.Generic.List>' 到 'Automated_VotingSystem.Models.DisplayCandidatesList'

【问题讨论】:

    标签: c# asp.net-mvc entity-framework .net-core entity-framework-core


    【解决方案1】:

    您的 DisplayAllCandidates 方法需要一个 DisplayCandidates 列表。因此,请使用显式类型 DisplayCandidates 而不是匿名并将操作返回类型更改为 List>。而且由于是异步动作,所以最好使用异步返回

    public async Task<List<DisplayCandidates>> DisplayAllCandidates()
    {
        return await (from c in _context.CandidateTables
                                  
                             ....
                                  select new DisplayCandidates
                                  {
                                      CandidateId = ac.CandidateId,
                                      Manifesto = c.Manifesto,
                                      Symbol_path = s.Symbol_path
                                  }).ToListAsync();
    

    【讨论】:

    • 谢谢你的工作
    • @AmeyRane 不客气!
    【解决方案2】:

    我不确定你想在这里做什么,但似乎;您不需要“DisplayCandidatesList”类,您只需要一个“DisplayCandidates”类。 如果你在另一个类中使用这个类作为列表的形式,使用那个列表而不是列表? ,但我猜这里你不需要。

    您的列表方法可以像这样返回“Task”, 我建议你学习 C# 中的主题集合和泛型 并且不要在控制器操作中使用该命名检查命名标准 https://restfulapi.net/resource-naming/

    【讨论】:

    • 我的模型中有 3 个不同的实体 Candidates、symbol 和 Approval,Candidates 和 symbol 有主键,在这里我试图内联表格并创建一些动作以将其传递给前端,感谢您的回复和链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-18
    • 2022-01-15
    • 2016-07-31
    相关资源
    最近更新 更多