在我的控制器中,我有一个接收十进制值(id)的方法。此方法的目的是从包含工作许可的数据库表中恢复旧修订列表。此表上的每条记录都有一个 WorkPermitID 作为主键,OldRevisionWorkPermitID 引用以前版本的 ID。
收集子 ID(旧版本)时我没有问题,但它引发了一个异常,表明 LINQ to Entities 无法识别.ToString()
方法。
我做错了什么?我知道我不需要转换为字符串(WorkPermitID 在数据库中定义为数字),但我尝试了几种方法都没有成功。
public ActionResult GetVersions(decimal id){
var model = new PermisosTrabajoModel();
List<string> ChildIDs = new List<string>();
var WP = OtWeb.WorkPermit.Single(q => q.WorkPermitID == id);
while (WP.OldRevisionWorkPermitID != null)
{
var child = WP.OldRevisionWorkPermitID;
ChildIDs.Add(child.ToString());
WP = OtWeb.WorkPermit.Single(q => q.WorkPermitID == child);
}
model.WPs = OtWeb.WorkPermit
.Where(q => q.DeptID == 1
&& ChildIDs.Contains(q.WorkPermitID.ToString())).ToList();
return View (model);
}