Какой способ реализации условий в Entity Framework имеет лучшую производительность? - PullRequest
0 голосов
/ 21 ноября 2018

Когда я хочу выполнить некоторые проверки для сущностей базы данных, я могу думать о двух способах:

1: извлечь значение поля и затем выполнить вычисления в приложении:

if (dbContext.Coupons.Where(c=> c.Id == couponId).Select(c=> c.ExpirationDate).Single() <= DateTime.Now)

2: Выполните вычисления в запросе (в методе «Выбрать ()»), а затем получите результат:

if (dbContext.Coupons.Where(c=> c.Id == couponId).Select(c=> c.ExpirationDate <= DateTime.Now).Single())

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Это даст вам лучшую производительность.

if (dbContext.Coupons.Any(c => c.Id == couponId && c.ExpirationDate <= DateTime.Now))
0 голосов
/ 21 ноября 2018

Я предлагаю, чтобы каждая проверка, фильтр или процесс выполнялся в linq или процессе, которые принимают значение из db (SQL Query) или объекта.

например:

, если у вас есть 10 данных втаблица и вы используете второй способ, приложение будет импортировать все данные в локальную память и отфильтрованы внутри приложения.

, но если вы используете первый способ, приложение импортирует только данные, которые уже отфильтрованы (например, только 4 данныхпосле процесса фильтрации)

если ваши данные больше 10K, возможно, вы увидите другое

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...