Я просто изучаю LINQ, и я столкнулся с проблемой и не знаю, как это сделать в LINQ.Запрос LINQ с условием where, содержащим
string numbers = "1,3,4,5";
string[] outletsInaStringArray = outlets.Split(',');
List<string> numbersAsAList = outletsInaStringArray.ToList();
У меня в моей базе данных содержится пробег. Я хочу только выбрать строки WHERE, номер в базе данных находится в списке строк чисел «1,3,4,5» (эти цифры - всего лишь примеры).
Заранее спасибо
Я посмотрел на Тима и Джеймс ответы, а также посмотрел на линии, что Джеймс послал. Я все еще немного смущен ..... Извините. Ниже мой фактический код. Она компилирует, но не работает
string outlets = "1,3,4,5"
string[] outletsNeeded = outlets.Split(',');
List<string> outletsNeededList = outletsNeeded.ToList();
DashboardEntities1 db = new DashboardEntities1();
var deptSalesQuery = (
from d in db.DashboardFigures
where (d.TypeOfinformation == "DEPTSALES") && (outletsNeeded.ToString().Contains(d.OutletNo.ToString()))
select new DeptSales
{
Dn = (int)d.Number,
Dnm = "Mens",
On = d.OutletNo,
Qs = (double)d.Value_4,
Se = (double)d.Value_2,
Si = (double)d.Value_3
}
);
В таблице DASHBAORDFIGURES в SQL у меня есть 2 записей, где выходы число = 1, и, следовательно, должны были прийти с двумя записями. Извините, если это простая вещь, ее просто новая для меня и ее разочарование.
'ToString()' не поддерживается 'Linq-To-Entities'. Скорее преобразуйте список строк в список целых чисел и используйте 'Contains'. –