在Linq select语句中拆分字符串

wsc*_*kai 1 linq linq-to-sql

我试图在linq查询中拆分一个字符串.我收到错误说"无法识别的表达式节点:ArrayIndex".有谁知道如何实现这一目标?我的代码示例是:

List<Task> Result= (from t in TaskDB.Tasks
                                       select new Task
                                       {
                                           Description = t.Description.Split('-')[0].ToString(),
                                           Id = ts.id,
                                       }).ToList();
Run Code Online (Sandbox Code Playgroud)

Nol*_*rin 8

问题是select您的查询部分无法转换为SQL以在服务器上执行(因此"无法识别的表达式节点"错误).尝试这样的事情,确保在客户端执行必要的代码:

var result = (from t in TaskDB.Tasks.AsEnumerable()
              select new Task
              {
                  Description = t.Description.Split('-')[0].ToString(),
                  Id = ts.id,
              }).ToList();
Run Code Online (Sandbox Code Playgroud)

这里的诀窍就是AsEnumerable在选择项目之前调用扩展方法.