gpt4 book ai didi

c# - ToDictionary 从第二个表查询返回 Null

转载 作者:行者123 更新时间:2023-11-30 16:48:28 25 4
gpt4 key购买 nike

我有如下两个模型:

public class Complaint
{
[Key]
public int COMP_ID { get; set; }
public Nullable<DateTime> Received_DT { get; set; }
public virtual ICollection<CHECKLIST> CHECKLISTs { get; set; }
}


public class CHECKLIST
{
[Key]
public int CL_ID { get; set; }
public int EmpID { get; set; }
public virtual COMPLAINT Complaints { get; set; }
}

我有一个存储库,它查询并返回 EMPID 输入的所有 list 的计数,但是当我从 .Where 的父表添加另一个过滤器时,它返回空值。当我从父表中取出 .Where 子句时,它工作得很好。

编辑 尝试包括表格

public Dictionary<int, int> GetAllChecklistCount()
{
try
{
return _context.Checklists
.Where(t => t.Complaints.Received_DT.Value.Year == 2016)
.Include(t => t.Complaints)
.GroupBy(a => a.EmpID)
.ToDictionary(g => g.Key, g => g.Count());
}
catch (Exception ex)
{
_logger.LogError("Could not get am with checklist", ex);
return null;
}
}

抛出错误

Exception thrown: 'System.ArgumentException' in mscorlib.dll System.ArgumentException: Expression of type System.Func2[Microsoft.Data.Entity.Query.EntityQueryModelVisitor+TransparentIdentifier2[CRAMSV3_2.Models.CHECKLIST,Microsoft.Data.Entity.Storage.ValueBuffer],System.Int32]' cannot be used for parameter of type System.Func2[CRAMSV3_2.Models.CHECKLIST,System.Int32]'
of method 'System.Collections.Generic.IEnumerable
1[System.Linq.IGrouping2[System.Int32,CRAMSV3_2.Models.CHECKLIST]]
_GroupBy[CHECKLIST,Int32,CHECKLIST](System.Collections.Generic.IEnumerable
1[CRAMSV3_2.Models.CHECKLIST], System.Func2[CRAMSV3_2.Models.CHECKLIST,System.Int32], System.Func2[CRAMSV3_2.Models.CHECKLIST,CRAMSV3_2.Models.CHECKLIST])'

问题 返回多个表或一个表的结果的最佳方法是什么,但要确保另一个表中的日期是可查询的。

最佳答案

您需要包含投诉对象。

return _context.Checklists
.Where(t => t.Complaints.Received_DT.Value.Year == 2016)
.Include(t => t.Complaints)
.GroupBy(a => a.EmpID)
.ToDictionary(g => g.Key, g => g.Count());

参见 here详情

关于c# - ToDictionary 从第二个表查询返回 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38104153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com