私のコントローラーには、10 進数値 (id) を受け取るメソッドがあります。このメソッドの目的は、作業許可を含むデータベース テーブルから古いリビジョンのリストを復元することです。このテーブルの各レコードには、主キーとしての WorkPermitID と、以前のバージョンの ID を参照する OldRevisionWorkPermitID があります。
子 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);
}