我正在尝试 Dapper。我喜欢我到目前为止所看到的。为了做简单的 CRUD,我使用 Dapper.rainbow。它工作得很好。但是,它仅在表具有名称为Id的标识列时才有效。拥有这样的数据库是有道理的,但我不能仅仅为了使用 Dapper 就要求更改数据库中的列名。更清楚地说,我正在使用像 Northwind Db 这样的数据库。它在 Id 列中到处都有重复的表名。
为了处理这个问题,我改变了 Dapper.Rainbow 代码如下:
public T Get(TId id,string idColumnName="Id")
{
return database.Query<T>("select * from " + TableName + " where "+idColumnName+" = @id", new { id }).FirstOrDefault();
}
有没有更好的方法来处理这个问题,比如列映射/注释或完全不同的东西?
我读过这样的问题
Dapper.Rainbow VS Dapper.Contrib
(我遇到了与 Dapper.Contrib 类似的小问题,我会单独问)。
更新- 不确定答案是否适用于我的 Dapper.Rainbow 问题(至少,我不知道如何)。
提前感谢您的帮助!