другая опция вместо использования AsEnumerable () в linq EF, при использовании пользовательского метода в linq
у меня есть код ниже
class Program
{
static void Main(string[] args)
{
string keyword = "m";
using (TestingEntities1 db = new TestingEntities1())
{
var models = db.Teachers.AsEnumerable().Where(a => RemoveA(a.Name).Contains(keyword));
foreach (var item in models)
{
Console.WriteLine(item.Name);
}
}
}
static string RemoveA(string input)
{
return input.Replace('a', ' ');
}
}
, как вы можете видеть в моем коде, я должен использовать AsEnumerable() использование пользовательской функции работает, потому что, если я ее не использую, я получу что-то сообщение об ошибке «LINQ to Entities не распознает метод метода», и этот метод не может быть преобразован в выражение хранилища. «
изатем я понял, что asenumerable замедляет работу, потому что обнаружил, что здесь Как улучшить производительность AsEnumerable в EF говорит: «вы делаете, что вы загружаете целые таблицы BilBillMasters и BilBillDetails, а затем выполняете некоторую обработку этихв вашем приложении, а не на сервере SQL. Это должно быть медленно. "пожалуйста, обратитесь к первому ответу для получения более подробной информации, поэтому есть ли способ ускорить мой код, в моем случае у меня в базе данных более миллиона данных