首页 > 解决方案 > 我必须从数据库中选择相同的 projectId、相同的资源 Id 行

问题描述

我想从数据库中选择特定ResourceIdprojectId行。传递列表时包含一些projectIdResourceId我得到一个错误:

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));                          
 }

标签: c#listdatatablewhere-clause

解决方案


Linq to Entities 不知道如何将 int 转换代码转换为 sql,您需要将其转换到 linq 查询之外,然后在查询中使用该值,对此的快速修复如下:

int ResId = int(List[i].ResourceId);

然后在您的查询中使用它

x.ResourceId.Equals(ResId) ....


推荐阅读