Я работаю над тестовым проектом Dapper, и мне попался случай использования, который я не могу понять.Для пользовательского репозитория у меня есть метод GetById, который работает нормально:
public static IEnumerable<User> GetById(IDbConnection connection, string identity)
{
string query = "SELECT * FROM USERS.USERINFO WHERE Id = @Id";
return connection.Query<User>(query, new User { Id = identity });
}
Но я также хотел бы иметь возможность запрашивать своих пользователей по произвольному свойству или набору свойств.Это возможно?Я думал просто о динамическом построении строки запроса SQL, но мне было интересно, если Dapper предоставляет что-то вроде этого?
Другой подход, который я выбрал, - это использовать метод IEnumerable Where для запроса, но я предполагаю, что этосовершенно неэффективно:
public static IEnumerable<User> Search(IDbConnection connection, Func<User, bool> predicate)
{
string query = "SELECT * FROM USERS.USER_INFO";
return connection.Query<User>(query).Where(predicate);
}
Есть мысли о том, как можно реализовать произвольный метод фильтрации / поиска?
Спасибо!