c# - 我必须从数据库中选择相同的 projectId、相同的资源 Id 行
问题描述
我想从数据库中选择特定ResourceId
的projectId
行。传递列表时包含一些projectId
,ResourceId
我得到一个错误:
LINQ to Entities 无法识别方法“SyncRms.Services.RequiredData get_Item(Int32)”方法,并且该方法无法转换为存储表达式。
代码:
for (int i = 1; i <= List.Count; i++)
{
Guid RId = (Guid)List[i].ResourceId;
// I get the error on this line of code
var result = db.External_Timesheet.Where(x=>x.ResourceId.Equals(int(List[i].ResourceId))&&x.ProjectId.Equals(List[i].ProjectId));
}
解决方案
Linq to Entities 不知道如何将 int 转换代码转换为 sql,您需要将其转换到 linq 查询之外,然后在查询中使用该值,对此的快速修复如下:
int ResId = int(List[i].ResourceId);
然后在您的查询中使用它
x.ResourceId.Equals(ResId) ....
推荐阅读
- c - C程序增加字符串中的字母
- java - 使用 Java 以编程方式创建 TestNg Xml 文件
- javascript - 我的反应状态问题有什么解决方案吗?
- node.js - 使用加密模块从 node.js 中的 Curve25519(或 X25519)非对称密钥对生成共享密钥
- javascript - 使用 HTML,我如何操作用户上传的文件,然后允许该用户下载它?
- django - 使用 Django Rest Framework 只查询一次
- c++ - 使用 Rcpp 公开构造函数,该构造函数将指向对象的指针作为参数
- delphi - 已分配 - 检查嵌套属性
- django - 如何修复 Ajax 中没有反向匹配错误
- php - 关于 Redis 问题的 PHP7.4 会话存储