Asp.net mvc 3 如何创建子ID列表
在我的控制器中,我有一个接收十进制值(id)的方法。 此方法的目标是从包含工作许可证的数据库表中恢复旧修订的列表。此表中的每条记录都有一个WorkPermitID作为主键,OldRevisionWorkPermitID引用以前版本的ID 我在收集子ID(旧版本)时没有问题,但它引发了一个异常,表明LINQ to实体无法识别Asp.net mvc 3 如何创建子ID列表,asp.net-mvc-3,linq,tostring,Asp.net Mvc 3,Linq,Tostring,在我的控制器中,我有一个接收十进制值(id)的方法。 此方法的目标是从包含工作许可证的数据库表中恢复旧修订的列表。此表中的每条记录都有一个WorkPermitID作为主键,OldRevisionWorkPermitID引用以前版本的ID 我在收集子ID(旧版本)时没有问题,但它引发了一个异常,表明LINQ to实体无法识别.ToString()方法 我做错了什么?我知道我不需要转换为字符串(WorkPermitID在数据库中定义为数字),但我尝试了几种方法,但没有成功 public Action
.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);
}
公共操作结果GetVersions(十进制id){
var模型=新PermisosTrabajoModel();
List ChildIDs=新列表();
var WP=OtWeb.WorkPermit.Single(q=>q.WorkPermitID==id);
while(WP.OldRevisionWorkPermitID!=null)
{
var child=WP.OldRevisionWorkPermitID;
Add(child.ToString());
WP=OtWeb.WorkPermit.Single(q=>q.WorkPermitID==child);
}
model.WPs=OtWeb.WorkPermit
.其中(q=>q.DeptID==1
&&childId.Contains(q.WorkPermitID.ToString()).ToList();
返回视图(模型);
}
解决方案1 如果两个字段都是十进制。。。不要使用
ToString()
,而要使用十进制列表
var模型=新PermisosTrabajoModel()
而不是
q.WorkPermitID.ToString()
例如谢谢你的回答!解决方案2就像一个符咒!第一个解决方案似乎更符合逻辑,但VS2010在childId.Add(WP.OldRevisionWorkPermitID)下面加了下划线代码>表示int和Generic List之间没有隐式转换
SqlFunctions.StringConvert(q.WorkPermitId)
q.WorkPermitID.ToString()