Я пытаюсь переписать прямой (отключенный) DataSet.DataTable.Выберите LINQ для текстового поиска:
string search = "ProductNo like '%" + searchpattern +
"%' OR ProductName like '%" + searchpattern +
"%' OR Description like '%" + searchpattern + "%'";
DataSetProducts.sk_productsRow[] dsp = (DataSetProducts.sk_productsRow[])dsProducts.sk_products.Select(search, sort);
Это работает очень быстро. Однако, если я воспроизведу его в LINQ:
productlist = from prds in dsProducts.sk_products.AsEnumerable()
where (prds.Field<string>("productno").Contains(searchpattern) ||
prds.Field<string>("productname").Contains(searchpattern) ||
prds.Field<string>("description").Contains(searchpattern))
select prds;
Он становится очень медленным из-за текстовых операций и возвращает намного меньше строк.
Как я могу достичь тех же результатов с той же скоростью? У меня в таблице всего ~ 1000 записей.