Я использую dapper и лямбда-выражение для извлечения данных из базы данных. Вместо того, чтобы создавать кучу перегруженных выражений, я хочу передать один объект базы данных, чтобы лямбда-выражения совпадали с ближайшим или первым найденным объектом.
public static User GetUser(User pUser)
{
using (IDbConnection connection = new SqlConnection(Connection))
{
return connection.Query<User>("SELECT * FROM dbo.USERS").(m => m == pUser);
}
}
В приведенном выше примере вы можете видеть, что я передаю объект «Пользователь» в функцию, этот пользовательский объект может составлять 50% от ожидаемого объекта. например, если у объекта было 2 строки, идентификатор и имя пользователя. Но я знал только имя пользователя. Я бы создал нового пользователя в качестве параметра ref или out, и запрос должен заполнить недостающие данные.
Мысли? Я мог бы создать множество перегруженных функций с дублированным кодом, таким как GetUserByID и GetUserByName, но это кажется избыточным.