Условный оператор Where Linq

В зависимости от того, насколько большой, и насколько правильно написанный исходный код был, это могло бы стоить запустить снова на Вашем любимом языке (который мог бы все еще быть C++), и учащийся на любых ошибках, сделанных в последней версии. Кто-то однажды не сказал о записи той для выбрасывания?

n.b. Очевидно, если это - огромный продукт, то это не может стоить времени.

5
задан Community 23 May 2017 в 12:06
поделиться

2 ответа

Вы можете использовать динамический LINQ ( Статья ScottGu )

Таким образом, вы можете легко создать предложение where в строке и затем передать его методу Where:

public string GetWhereClause()
{
string whereClause = "";
....
return whereClause
}

var logs = context.Logs.Where( GetWhereClause() );

Надеюсь, это поможет;)

2
ответ дан 14 December 2019 в 08:54
поделиться

Да, я думаю, это эффективно. Этот код фактически не будет выполнять никаких запросов, потому что он не пытается ничего читать из «журналов». Когда это происходит, он должен учитывать оба условия в одном запросе (то есть предложение WHERE, которое включает оба условия).

НО, если вы используете LINQ и беспокоитесь об эффективности, вам действительно нужно проверять все, что вы пишете, используя инструменты, чтобы посмотреть, какие запросы действительно выполняются. Вы можете сделать это с помощью SQL Server Profiler.

5
ответ дан 14 December 2019 в 08:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: