2016-05-03 2 views
-1

Я получаю следующие результаты дляс помощью LINQ IN оператора в раздельной запятой значения

string[] proj = Pid.Split(','); 

"1032,1222" -> [0] = 1032 [1] = 1222

но я хотите использовать в запросе LINQ. Это мой запрос LINQ. Где его использовать и как его использовать?

string[] proj = Pid.Split(','); 

var data2 = (from p in Db.emp.AsEnumerable() 
      join r in Db.use on p.EmployeeId equals r.EmployeeId 
      join q in Db.proo on p.EmployeeId equals q.EmpId 
      where (q.IsDelete == false && p.IsDelete == false && p.RoleID != 1 && p.RoleID != 2 && q.ProId == Convert.ToInt32(Pid)) 
      select new GroupSelectedModel { 
       Text = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(p.FirstName + " " + p.LastName), 
       Value = r.UserId.ToString(), 
       StatusId = Convert.ToInt32(p.Status) 
      }) 
      .Distinct().ToList().OrderBy(r => r.Text); 
return data2.OrderBy(p => p.StatusId).ToList(); 

Пожалуйста, проверьте вышеуказанный код.

ответ

0

Если вам нужно IN, вы должны инвертировать его и использовать Contains(). Ваше сообщение не очень понятно, но я думаю, что вы просите что-то вроде этого (обратите внимание, что вам нужно использовать List вместо массива):

List<string> proj = new List<string>(Pid.Split(','));

where (q.IsDelete == false && p.IsDelete == false && p.RoleID != 1 && p.RoleID != 2 && proj.Contains(q.ProId))

Смежные вопросы