dapper - Dapper.Contrib:如何通过过滤除 ID 以外的列来获取一行?
问题描述
我的课如下:
[Table("tblUser")]
public class User
{
[Key]
public int Id { get; set; }
public string Title { get; set; }
}
使用 Dapper.Contrib,有没有办法通过而不是 Id来获取User
记录?Title
如果我像下面这样查询,它可以工作。但是,我想过滤Title
不是键的列。
await connection.GetAsync<User>(Id);
解决方案
查看文档,Dapper.Contrib 不支持使用键以外的标准检索记录。换句话说,它在当前实现中不支持任何类型的谓词系统。
使用GetAll
,您可以使用 linq 进一步过滤它。但请记住,这不是在 RDBMS 上执行的。它将在应用程序端或内存中执行。这意味着,将首先加载整个数据,然后将其过滤。
就个人而言,我会选择使用 Dapper(绕过 Contrib)来处理这种特定情况。项目的其他部分仍将使用 Contrib。
推荐阅读
- google-apps-script - 在客户端验证 textInput 小部件 - Gmail 添加
- asp.net - 如何获取 Scripts.Render(“~/bundles/someScript”) 生成的 URL?
- vba - 每个组/类别 Excel 的前/后 10 个条目?
- python - Cronjob 没有在 Raspberry 上运行 Python 脚本
- sql - generate_series() 中表的开始日期和结束日期
- ios - 如何更改 MBProgressHUD 活动指示器样式?
- python - 使用正则表达式仅在指定字符之间获取文本
- ios - 在 Xcode 9 swift 4 中登录后无法按住屏幕 .. 受保护的页面在瞥见后立即消失
- python - 我们可以在 Python 中向 kafka 发送一个类实例吗?
- reactjs - 在 Reactjs 中倒计时后重新启动计时器