【问题标题】:Dapper.Contrib: How to get a row by filtering on column other than ID?Dapper.Contrib:如何通过过滤除 ID 以外的列来获取一行?
【发布时间】:2019-01-31 06:53:46
【问题描述】:

我的班级如下:

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

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

如果我像下面这样查询,它可以工作。但是,我想过滤不是键的Title 列。

await connection.GetAsync<User>(Id);

【问题讨论】:

    标签: dapper dapper-contrib


    【解决方案1】:

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

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

    就个人而言,我会选择使用 Dapper(绕过 Contrib)来处理这种特定情况。项目的其他部分仍将使用 Contrib。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多