c# - LINQ to Entities 无法识别方法“<>f__AnonymousType4`1[System.String] get_Item(Int32)”
问题描述
请我正在使用 Entity Framework 处理 ASP.NET MVC 项目,我尝试使用此查询,但出现错误。
询问 :
var R = (from A in SCHOOL_DB_Context.Con.ABS where A.STG_ABS == STG && (A.DT_ABS.Month + "/" + A.DT_ABS.Year) == MONTHS[i].MONTH && A.DT_ABS.Hour == Hour select A).ToList();
错误 :
LINQ to Entities 无法识别方法 '<>f__AnonymousType4`1[System.String] get_Item(Int32)' 方法,并且此方法无法转换为存储表达式。
完整的代码是:
var MONTHS = (from A in SCHOOL_DB_Context.Con.ABS where A.STG_ABS == STG && A.DT_ABS.Hour == Hour group A by A.DT_ABS.Month + "/" + A.DT_ABS.Year into G select new { MONTH = G.Key }).ToList();
List<DataPoint> DATA = new List<DataPoint>();
List<DataPoint> DTP = new List<DataPoint>();
if (MONTHS.Count == 0)
{
DTP.Add(new DataPoint(null, null));
}
else
{
for (int i = 0; i < MONTHS.Count; i++)
{
var R = (from A in SCHOOL_DB_Context.Con.ABS where A.STG_ABS == STG && (A.DT_ABS.Month + "/" + A.DT_ABS.Year) == MONTHS[i].MONTH && A.DT_ABS.Hour == Hour select A).ToList();
int Count = 0;
Count = R.Count;
//DATA.Add(new DataPoint(MONTHS[i].MONTH, Count));
DTP.Add(new DataPoint(MONTHS[i].MONTH, Count));
}
}
请帮助解决这个问题?
解决方案
尝试将索引器拉出辅助查询:
var month = MONTHS[i].MONTH;
var R = (from A in SCHOOL_DB_Context.Con.ABS
where A.STG_ABS == STG
&& (A.DT_ABS.Month + "/" + A.DT_ABS.Year) == month
&& A.DT_ABS.Hour == Hour
select A).ToList();
您可能仍然会收到将月份和年份连接为字符串的错误 - 如果您这样做,我的下一个建议是在MONTHS
查询中分别提取月份和年份并独立比较这两个值。
推荐阅读
- c# - 通过pyinstaller在C#上执行python脚本的问题
- flutter - 通过平台通道用于 Dart/Flutter 的 SignalR 客户端
- python - 值超过设置规则的数量
- node.js - 在 Visual Studio React Native App 中构建失败
- python - 如何使用 mysql python 连接器检索二进制数据?
- c# - 后台线程未按其任何定义中所述工作
- php - 将静态多个单选按钮数组更改为动态 Codeigniter
- electron - Electron ipc 消息是有序的吗?
- opencv - OpenCV按位运算多于两个图像
- python - 在py3中安装mysqlclient时出错