C# 无法隐式转换类型';System.Collections.Generic.List<&书信电报;匿名类型

C# 无法隐式转换类型';System.Collections.Generic.List<&书信电报;匿名类型,c#,linq,entity-framework-core,asp.net-core-3.1,ef-core-3.1,C#,Linq,Entity Framework Core,Asp.net Core 3.1,Ef Core 3.1,完整异常消息: 无法隐式转换类型 “System.Collections.Generic.List”到 'System.Collections.Generic.IList'。 存在显式转换(是否缺少强制转换?) [附表API] public异步任务gettaskschedulesbyser(int UserId) { var userTaskSchedule=await\u context.TaskSchedules .Join(_context.Notes, schedu

完整异常消息:

无法隐式转换类型 “System.Collections.Generic.List”到 'System.Collections.Generic.IList'。 存在显式转换(是否缺少强制转换?) [附表API]

public异步任务gettaskschedulesbyser(int UserId)
{           
var userTaskSchedule=await\u context.TaskSchedules
.Join(_context.Notes,
schedule=>schedule.Id,
note=>note.Id,
(附表,注)=>新的{附表,注})
.Where(u=>u.schedule.userId==userId)
.ToListAsync();
返回用户任务时间表;
}
我相信该方法的返回类型需要更改,但我不确定要更改什么

模型

父表=任务计划

子表=注释

Notes模型

public class Note
{
    public int Id { get; set; }
    public string NotesInfo { get; set; }
    public DateTime dateCreated {get; set;}
    public TaskSchedule taskSchedule {get; set;}
    public User user { get; set; }
    public int userId { get; set; } 
}
任务调度模型

public class TaskSchedule
{
    public int Id { get; set; }
    public string Title { get; set; }
    public DateTime Start { get; set; }
    public DateTime End { get; set; }
    public User user { get; set; }
    public int userId { get; set; }     
}

我希望您的任务计划如下所示:

public class TaskSchedule
{
    public int Id { get; set; }
    public string Title { get; set; }
    public DateTime Start { get; set; }
    public DateTime End { get; set; }
    public User user { get; set; }
    public int userId { get; set; }  

    public List<Note> Notes { get; set; }  
}
公共类任务调度
{
公共int Id{get;set;}
公共字符串标题{get;set;}
公共日期时间开始{get;set;}
公共日期时间结束{get;set;}
公共用户{get;set;}
public int userId{get;set;}
公共列表注释{get;set;}
}
(Note类仍然有一个TaskSchedule属性-EF可以推断TS:N是1:M,因为rel的一端是单个属性,另一端是集合)

要获取任务时间表及其注释,您可以说:

public async Task<IList<TaskSchedule>> GetTaskSchedulesByUser(int UserId)
{           
    var userTaskSchedule = await _context.TaskSchedules
        .Include(ts => ts.Notes)
        .Where(u => u.schedule.userId == UserId)
        .ToListAsync(); 

    return userTaskSchedule;            
}
public异步任务gettaskschedulesbyser(int UserId)
{           
var userTaskSchedule=await\u context.TaskSchedules
.包括(ts=>ts.Notes)
.Where(u=>u.schedule.userId==userId)
.ToListAsync();
返回用户任务时间表;
}

这是什么味道的ORM?我不确定你是否需要加入。。根据方法签名判断,您可能只需要返回wait\u context.TaskSchedules.Where(u=>u.schedule.userId==userId).toListSync()。如果您也希望返回注释,并且TaskSchedule中没有可保存注释的位置,则需要修改方法return typeORM=Entityframework I need notes,因为它位于单独的表中。“Taskschedule”与“Note”有1对多的关系。我应该能够在“任务时间表”中添加尽可能多的注释。您编写的代码最初是我的代码,它可以工作,但是,我无法查看注释。还有其他方法可以将其加入notes表吗?我可以请您用它标记您的问题的版本(以及是否为core/否),例如用
efcore
efcore-3.1
标记。TaskSchedule是否具有notes的nav属性?当您包含实体类及其映射配置时,EF问题通常更容易回答错误非常清楚。该联接创建了一个新的匿名类型,该类型与TaskSchedule和与返回类型不匹配的便笺的组合不匹配。如果您不想同时返回这两种类型,为什么要使用Notes进行连接?此外,连接是由ORM根据实体之间的关系生成的。如果您必须显式地使用联接,则它强烈地表明模型和实体是错误的。TaskSchedule应具有Notes或Notes属性