1 回答

TA貢獻1827條經驗 獲得超4個贊
如果使用Like(w.GetProperty(item.Value), ...)
,則請求在客戶端上執行,而不是在服務器上執行。要將整個請求發送到服務器,您可以執行以下操作:
List<WorkerTableRow> Search(ItemSearch item, string text)
{
? ? string pattern = string.Format("%{0}%", text);
? ? using (var model = new ModelContext())
? ? {
? ? ? ? IQueryable<Worker> query = model.Workers;
? ? ? ? if (item.Value == "FullName")
? ? ? ? ? ? query = query.Where(w => EF.Functions.Like(w.FullName, pattern));
? ? ? ? if (item.Value == "PassportSeries")
? ? ? ? ? ? query = query.Where(w => EF.Functions.Like(w.PassportSeries, pattern));
? ? ? ? if (item.Value == "PassportNumber")
? ? ? ? ? ? query = query.Where(w => EF.Functions.Like(w.PassportNumber, pattern));
? ? ? ? return query.Select(w => new WorkerTableRow { ... }).ToList();
? ? }
}
- 1 回答
- 0 關注
- 155 瀏覽
添加回答
舉報