Dapper.Contrib:如何通过过滤 ID 以外的列来获取行?

Reg*_*ani 2 dapper dapper-contrib

我的班级如下:

[Table("tblUser")]
public class User
{
    [Key]
    public int Id { get; set; }
    public string Title { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

使用Dapper.Contrib,有没有办法通过而不是Id来获取User记录?Title

如果我像下面这样查询,它就有效。但是,我想过滤Title不是键的列。

await connection.GetAsync<User>(Id);
Run Code Online (Sandbox Code Playgroud)

Ami*_*shi 5

查看文档,Dapper.Contrib 不支持使用键以外的条件检索记录。换句话说,它在当前的实现中不支持任何类型的谓词系统。

使用GetAll,您可以使用 linq 进一步过滤它。但请记住,这不是在 RDBMS 上执行的。它将在应用程序端或内存中执行。这意味着,将首先加载整个数据,然后对其进行过滤。

就我个人而言,对于这种特定场景,我会选择使用 Dapper(绕过 Contrib)。项目的其他部分仍将使用 Contrib。