让字符串项目等于“p1,p2,p3”,并在数据库中每个的标识符存在如下p1 = 1,p2 = 2,p3 = 3。只有第一个项目在列表中正在返回我的查询中,有关为什么?Linq查询只返回数组的第一项
private List<int> getProjects(string projects)
{
String[] projectArray = projects.Split(',');
QMOIIEntities db = new QMOIIEntities();
var projectList = db.wbs_projects
.Where(x => projectArray.Contains(x.prjName))
.Select(x => x.prjID).ToList();
return projectList;
}
* * UPDATE 这个问题是空白的字符串中我改变
String[] projectArray = projects.Split(',');
到
String[] projectArray = projects.Trim().Split(',');
这看起来像一个数据相关的问题。你可以给出db.wbs_projects的外观样本数据吗? –
您的缩进非常混乱 - 将'Contains'调用放在与Where调用相同的行上会更好,因为它是其中的一部分 - 不是它的同位体,这是您的格式设置使它看起来像。 –
你是否三重检查了'projectArray'包含了你认为它所做的事情?对于Db也是一样。 'P2'或'p2'而不是'p2'就可以做到。 –