4

我试图使用 efcore 2.1 执行一个简单的选择查询,输出窗口抛出多个异常

“抛出异常:System.Linq.Expressions.dll 中的‘System.ArgumentException’”

但最终会运行查询。这是什么原因造成的?

此外,仅当我包含多个相关实体时才会发生这种情况,例如前两个查询将毫无问题地运行,但最后一个查询将在输出中引发异常。

 var a = _projectDbContext.Tasks.Where(x => x.Id == taskId)
          .Include(x => x.TaskType)             
          .FirstOrDefault();
        var b = _projectDbContext.Tasks.Where(x => x.Id == taskId)            
            .Include(x => x.TaskStatus)
          .FirstOrDefault();
        var c = _projectDbContext.Tasks.Where(x => x.Id == taskId)
          .Include(x => x.TaskType)
            .Include(x => x.TaskStatus)
          .FirstOrDefault();

这里是输出窗口

我的实际查询多次抛出这些异常并减慢执行速度。

public partial class Tasks
{
    public Guid Id { get; set; }      
    public string TaskName { get; set; }
    public string TaskDescription { get; set; }      
    public Guid? TaskTypeId { get; set; }        
    public Guid? TaskStatusId { get; set; }       
    public TaskStatus TaskStatus { get; set; }
    public TaskTypes TaskType { get; set; }

}
public partial class TaskTypes
{
    public TaskTypes()
    {
        Tasks = new HashSet<Tasks>();
    }

    public Guid Id { get; set; }   
    public string TypeName { get; set; }    
    public ICollection<Tasks> Tasks { get; set; }
}
public partial class TaskStatus
{
    public TaskStatus()
    {
        Tasks = new HashSet<Tasks>();
    }    
    public Guid Id { get; set; }      
    public string StatusName { get; set; }
    public ICollection<Tasks> Tasks { get; set; }
}
4

0 回答 0