Я использую LINQ для доступа к своим таблицам базы данных.Некоторые из таблиц могут иметь (сотни тысяч) записей.
Чтение из таблицы с помощью следующего выражения:
var records = db.Logs;
сделает приложение очень очень медленным.Он будет загружать все записи одновременно.
Мне нужно отфильтровать результат с более чем условием, например:
if (UserID != null)
{
records = records.Where(r => r.User == UserID);
}
if (UserIP != null)
{
records = records.Where(r => r.IP == UserIP);
}
Проблема в том, что мое первое чтение из таблицы принесет мневсе записи и сделает приложение очень медленным.
Есть ли способ задать условия в операторе LINQ (если, switch), как мы привыкли делать с операторами SQL?
Этосколько лет создавалась логика:
string sql = "SELECT * FROM Log WHERE 1=1";
if (UserID != null)
{
sql += " AND User = '" + UserID + "'";
}
if (UserIP != null)
{
sql += " AND IP = '" + UserIP + "'";
}
sqlCmd.query(sql);