【问题标题】:Get array of string from variable using linq使用linq从变量中获取字符串数组
【发布时间】:2013-12-24 20:20:45
【问题描述】:
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>();

//这是我的getStatus的代码 私有对象 getStatus(字符串 pStatus) { 字符串 retStatus = string.Empty; 开关(pStatus) { 案例“I_ASSIGNED”: retStatus = "待定"; 休息; 案例“I_AVAILABLE”: retStatus = "待定"; 休息; 案例“I_COMPLETED”: retStatus = "已完成"; 休息; 案例“系统延迟”: retStatus = "待定"; 休息; 案例“休眠”: retStatus = "待定"; 休息; 默认: retStatus = "待定"; 休息; } 返回 retStatus; } }

【问题讨论】:

  • 当我尝试获取组名数组时出现运行时错误,linq to entity 无法识别方法 system.object.getstatus
  • 完全可以理解,我也不认识。这是什么?
  • 我需要从 tskStatus 获取组名数组

标签: c# linq linq-to-entities


【解决方案1】:

之所以不能使用getStatus(),是因为LINQ To Entities将LINQ查询转换为SQL,而LINQ To Entities无法将getStatus()方法转换为SQL。

【讨论】:

  • 在getStatus中,尝试将task.status字符串替换成另一个字符串
  • 如何替换 select 语句中的值
  • @user3129983:看看这个问题:stackoverflow.com/q/17187395/2619912
猜你喜欢
  • 2016-02-23
  • 2020-11-06
  • 2021-03-03
  • 2014-02-26
  • 1970-01-01
  • 2022-10-21
  • 1970-01-01
  • 2012-04-06
  • 2011-04-15
相关资源
最近更新 更多