В зависимости от того, насколько большой, и насколько правильно написанный исходный код был, это могло бы стоить запустить снова на Вашем любимом языке (который мог бы все еще быть C++), и учащийся на любых ошибках, сделанных в последней версии. Кто-то однажды не сказал о записи той для выбрасывания?
n.b. Очевидно, если это - огромный продукт, то это не может стоить времени.
Вы можете использовать динамический LINQ ( Статья ScottGu )
Таким образом, вы можете легко создать предложение where в строке и затем передать его методу Where:
public string GetWhereClause()
{
string whereClause = "";
....
return whereClause
}
var logs = context.Logs.Where( GetWhereClause() );
Надеюсь, это поможет;)
Да, я думаю, это эффективно. Этот код фактически не будет выполнять никаких запросов, потому что он не пытается ничего читать из «журналов». Когда это происходит, он должен учитывать оба условия в одном запросе (то есть предложение WHERE, которое включает оба условия).
НО, если вы используете LINQ и беспокоитесь об эффективности, вам действительно нужно проверять все, что вы пишете, используя инструменты, чтобы посмотреть, какие запросы действительно выполняются. Вы можете сделать это с помощью SQL Server Profiler.