【发布时间】:2018-12-25 02:04:42
【问题描述】:
我正在开发一个测试 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);
}
对如何实现任意过滤器/搜索方法有任何想法吗?
谢谢!
【问题讨论】:
标签: dapper