C# 使用linq从变量获取字符串数组 var tskStatus=来自vpnTaskQuery中的任务 在dbContext.vpn\u任务上的groupname中加入groupname。taskName等于groupname.task\u NAME 选择新的 { taskName=task.taskName, groupName=groupName.Functional\u组, taskStatus=getStatus(task.taskStatus), Seq=addSequence(groupname.Functional\u Group) }进入新任务 orderby newTask.Seq升序 选择新任务; string[]groupName=tskStatus.Select(s=>s.groupName) .Distinct() .ToArray();

C# 使用linq从变量获取字符串数组 var tskStatus=来自vpnTaskQuery中的任务 在dbContext.vpn\u任务上的groupname中加入groupname。taskName等于groupname.task\u NAME 选择新的 { taskName=task.taskName, groupName=groupName.Functional\u组, taskStatus=getStatus(task.taskStatus), Seq=addSequence(groupname.Functional\u Group) }进入新任务 orderby newTask.Seq升序 选择新任务; string[]groupName=tskStatus.Select(s=>s.groupName) .Distinct() .ToArray();,c#,linq,linq-to-entities,C#,Linq,Linq To Entities,//这是我的getStatus的代码 私有对象getStatus(字符串pStatus) { string retStatus=string.Empty; 开关(pStatus) { 案例“I_分配”: retStatus=“待定”; 打破 案例“I_可用”: retStatus=“待定”; 打破 案例“I_COMPLETED”: retStatus=“已完成”; 打破 案例“系统延迟”: retStatus=“待定”; 打破 案例“休眠”: retStatus=“待定”; 打破 违约: ret

//这是我的getStatus的代码 私有对象getStatus(字符串pStatus) { string retStatus=string.Empty; 开关(pStatus) { 案例“I_分配”: retStatus=“待定”; 打破 案例“I_可用”: retStatus=“待定”; 打破 案例“I_COMPLETED”: retStatus=“已完成”; 打破 案例“系统延迟”: retStatus=“待定”; 打破 案例“休眠”: retStatus=“待定”; 打破 违约: retStatus=“待定”; 打破 } 返回状态; }
}

无法使用
getStatus()
,原因是LINQ To Entities将LINQ查询转换为SQL,而LINQ To Entities无法将
getStatus()
方法转换为SQL。

当我尝试获取组名数组时,出现运行时错误,linq to entities不会重新识别方法system.object.GetStatus完全可以理解,我也不认识它。这是什么?我需要从tskStatusIn getStatus中获取groupname数组,只需尝试将task.status字符串替换为另一个字符串如何替换select中的这些值statement@user3129983:看一看这个问题:
var tskStatus = from task in vpnTaskQuery
                join groupname in dbContext.vpn_groupname on task.taskName equals groupname.TASK_NAME
                select new
                {
                    taskName = task.taskName,
                    groupName = groupname.Functional_Group,
                    taskStatus = getStatus(task.TaskStatus),
                    Seq = addSequence(groupname.Functional_Group)
                } into newTask
                orderby newTask.Seq ascending
                select newTask;

string[] groupName = tskStatus.Select(s => s.groupName)
                              .Distinct()
                              .ToArray<string>();