我有这个linq查询
List<Details> DetailList = new List<Details>();
DetailList = (from areadetails in context.AreaDetails.Where(x => (bool)x.IsActive && x.Area == area)
join jobdetails in context.JobDetails.Where(x => x.IsActive) on jobdetails.BuildDetailID equals areadetails.BuildDetailID
select new Details
{
Area = areadetails.AreaName,
JobLink = (jobdetails.EJ2JobLink != null) ? jobdetails.JobLink + "/console" : null,
JobId = (jobdetails.EJ2JobLink != null) ? jobdetails.JobLink.Split('/').Last() : null
}).ToList();
JobLink = Job / it / development / 41
我必须从链接中获得职位ID(41)。当我在控制台应用程序中分别运行此( JobLink.Split('/')。Last())时,将从链接中获取正确的作业ID。在linq中使用时。
我遇到了这样的例外情况:
LINQ to Entities无法识别方法'System.String Format(System.String,System.Object [])'方法,该方法不能 被翻译成商店表情。
有人知道为什么吗?有谁知道这样做的另一种方法以使其起作用?
答案 0 :(得分:0)
要么使用答案中提到的方法,要么@Stephen Kennedy在评论中将其链接到this question,或者通过可以映射到数据库查询的某种方式来拆分字符串-这应该起作用:
JobId = (jobdetails.EJ2JobLink != null) ? jobdetails.JobLink.Substring(jobDetails.JobLink.Length - EntityFunctions.Reverse(e.jobDetails.JobLink).IndexOf('/') + 1) : null
/编辑:已更新为LastIndexOf is not supported。